Мне нужно найти все элементы со специальным значением атрибута.
Вот div, который мне нужно найти (у меня их много.)
<div imageId='imageN'>...
Мне просто нужно пройти через div, которые имеют imageId='imageN'
Мне нужно найти все элементы со специальным значением атрибута.
Вот div, который мне нужно найти (у меня их много.)
<div imageId='imageN'>...
Мне просто нужно пройти через div, которые имеют imageId='imageN'
$('div[imageId="imageN"]').each(function() {
// `this` is the div
});
Чтобы проверить наличие единственного атрибута, независимо от того, какое значение вы могли бы использовать вместо этого селектор: $('div[imageId]')
Хотя он точно не отвечает на вопрос, я приземлился здесь, когда искал способ получить коллекцию элементов (потенциально разные имена тегов), которые просто имели заданное имя атрибута (без фильтрации по значению атрибута). Я обнаружил, что для меня работали хорошо:
$("*[attr-name]")
Надеюсь, что это поможет кому-то, кто попадает на эту страницу, ищет то же, что и я:).
Обновление: Похоже, что звездочка не требуется, т.е. На основе некоторых базовых тестов, похоже, эквивалентно приведенному выше (спасибо Мэтту за это указание):
$("[attr-name]")
Он не называется тегом; то, что вы ищете, называется атрибутом html.
$('div[imageId="imageN"]').each(function(i,el){
$(el).html('changes');
//do what ever you wish to this object :)
});
Вы можете использовать частичное значение атрибута для обнаружения элемента DOM с помощью знака (^). Например, у вас есть такие divs:
<div id="abc_1"></div>
<div id="abc_2"></div>
<div id="xyz_3"></div>
<div id="xyz_4"></div>...
Вы можете использовать код:
var abc = $('div[id^=abc]')
Это вернет массив DOM из div, у которых id начинается с abc
:
<div id="abc_1"></div>
<div id="abc_2"></div>
Вот демо: http://jsfiddle.net/mCuWS/
Используйте конкатенацию строк. Попробуйте следующее:
$('div[imageId="'+imageN +'"]').each(function() {
$(this);
});