2013-07-01 2 views
1

Я использую jQuery для отображения изображения одним нажатием. Это прекрасно работает путем сохранения источника изображения в переменную, как так ..Распаковка атрибута img src

var theSrc = $(event.target).attr('src'); 

Затем я могу поместить это изображение в DIV и показать его

var theImg = '<div class="wrap"><img src="'+imgSrc+'"></div>'; 

То, что я хотел бы сделать, был бы просто изменить источник изображения немного больший файл в том же каталоге, который больше, присоединяя «большой» к имени

image.png 

в

imageBig.png 

Возможно ли это с помощью jQuery?

ответ

4

Я бы просто использовать .replace() - это проще, чем .split() для такого использования:

var theSrc = $(event.target).attr('src').replace('.png', 'Big.png'); 

Также предложение: я бы устранил шумовые слова, такие как the из ваших имен переменных. Вместо theSrc используйте src. Вместо theImg используйте img. Слово the ничего не сообщает и не имеет значения в имени переменной. На самом деле это значение отрицательное значение, потому что это лишний материал для чтения, который не добавляет никакого смысла в более простое имя.

+0

Я вижу, как можно добавить '', чтобы избежать путаницы между src атрибутом, img элементом иSrc или переменными jQuery. Хотя это только соглашения (я бы избегал использовать такие запутывающие имена и префикс их на $, поскольку они являются переменными jQuery, в первую очередь) – FelipeAls

2

Sure:

$("img").attr("src", "imageBig.png"); 

Смотрите документацию JQuery: http://api.jquery.com/attr/#attr2 Есть несколько ароматов ATTR, которые вы можете использовать.

Чтобы сделать это динамически, см. Сообщение @ tymeJV, которое будет работать до тех пор, пока в имени файла есть только один период.

+2

Я думал, что OP хочет добавить «Большой» в конец любого img src? Я читал совершенно неправильно? – tymeJV

+2

Я думаю, он хочет, чтобы он был динамичным, а не только для 'image' to 'imageBig' –

+0

Dunno, может быть, я его не читал достаточно ... –

6

Вы можете сделать что-то вроде:

var theSrc = $(event.target).attr('src'); 
theSrc = theSrc.split(".")[0] + "Big." + thetheSrc.split(".")[1]; 
+0

Что делать, если в атрибуте 'src' есть другой' .'? например 'SRC = "temp.test/image.png"'. –

+0

@MichaelGeary - я должен обратиться к этому, reg-ex будет работать или просто разбиться на '.png' или на любое другое расширение img по умолчанию, а затем заменить его все. Так или иначе. – tymeJV

+1

Это работает, только выбранный ответ был более быстрой реализацией для этого сценария – Chris

1

Не с JQuery, но вы можете сделать это с помощью Javascript:

var temp = imgSrc.split('.'); 
var newSrc = temp[0]+'Big.'+temp[1]; 
Смежные вопросы