Подтвердить что ты не робот

Найти все элементы с определенным значением атрибута в jquery

Мне нужно найти все элементы со специальным значением атрибута.

Вот div, который мне нужно найти (у меня их много.)

<div imageId='imageN'>...

Мне просто нужно пройти через div, которые имеют imageId='imageN'

4b9b3361

Ответ 1

$('div[imageId="imageN"]').each(function() {
    // `this` is the div
});

Чтобы проверить наличие единственного атрибута, независимо от того, какое значение вы могли бы использовать вместо этого селектор: $('div[imageId]')

Ответ 2

Хотя он точно не отвечает на вопрос, я приземлился здесь, когда искал способ получить коллекцию элементов (потенциально разные имена тегов), которые просто имели заданное имя атрибута (без фильтрации по значению атрибута). Я обнаружил, что для меня работали хорошо:

$("*[attr-name]")

Надеюсь, что это поможет кому-то, кто попадает на эту страницу, ищет то же, что и я:).

Обновление: Похоже, что звездочка не требуется, т.е. На основе некоторых базовых тестов, похоже, эквивалентно приведенному выше (спасибо Мэтту за это указание):

$("[attr-name]")

Ответ 3

Он не называется тегом; то, что вы ищете, называется атрибутом html.

$('div[imageId="imageN"]').each(function(i,el){
  $(el).html('changes');
  //do what ever you wish to this object :) 
});

Ответ 4

Вы можете использовать частичное значение атрибута для обнаружения элемента 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/

Ответ 5

Используйте конкатенацию строк. Попробуйте следующее:

$('div[imageId="'+imageN +'"]').each(function() {
    $(this);   
});