Найти все элементы с определенным значением атрибута в jQuery
мне нужно найти все элементы, которые имеют специальное значение атрибута.
вот это div, мне нужно найти (у меня их много..)
<div imageId='imageN'>...
мне просто нужно пройти через дивов, которые имеют imageId='imageN'
5 ответов:
$('div[imageId="imageN"]').each(function() { // `this` is the div });
чтобы проверить единственное существование атрибута, независимо от того, какое значение, вы можете использовать селектор ths вместо этого:
$('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 с помощью знака ( ^ ). Например, у вас есть дивы, как это:
<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 divs, которые имеют идентификатор, начинающийся с
abc
:<div id="abc_1"></div> <div id="abc_2"></div>
вот демо: http://jsfiddle.net/mCuWS/