Как выбрать все элементы с определенным ID в jQuery?

Я пытаюсь выбрать все <div> с тем же ID в jQuery. Как это сделать?

Я пробовал это, и он не работал

jQuery('#xx').each(function(ind,obj){
      //do stuff;
});

Ответ 1

Я бы использовал разные идентификаторы, но назначил каждый DIV тем же классом.

<div id="c-1" class="countdown"></div>
<div id="c-2" class="countdown"></div>

Это также имеет дополнительное преимущество, заключающееся в возможности восстановления идентификаторов, основанных на возврате jQuery ( "обратный отсчет" ). length


Хорошо, что добавить несколько классов в каждый таймер обратного отсчета. IE:

<div class="countdown c-1"></div>
<div class="countdown c-2"></div>
<div class="countdown c-1"></div>

Таким образом, вы получаете лучшее из обоих миров. Он даже позволяет повторять "IDS"

Ответ 2

Хотя здесь есть и другие правильные ответы (например, использование классов), с академической точки зрения, конечно, возможно иметь несколько div с одним ID, и их можно выбрать с помощью jQuery.

Когда вы используете

jQuery("#elemid") 

он выбирает только первый элемент с данным ID.

Однако, когда вы выбираете по атрибуту (например, id в своем случае), он возвращает все соответствующие элементы, например:

jQuery("[id=elemid]") 

Это, конечно, работает для выбора по любому атрибуту, и вы можете дополнительно уточнить свой выбор, указав соответствующий тег (например, div в вашем случае)

jQuery("div[id=elemid]") 

Ответ 3

В вашем документе не должно быть двух разделов с одним и тем же идентификатором. Это недействительный HTML, и в результате базовый DOM API не поддерживает его.

Из HTML-стандарт:

id = name [CS] Этот атрибут присваивает имя элемента. Это имя должно быть уникальным в документе.

Вы можете назначить разные идентификаторы для каждого div и выбрать их с помощью $('#id1, #id2). Или назначьте один и тот же класс обоим элементам (например, .cls) и используйте $('.cls'), чтобы выбрать их оба.

Ответ 4

$("div[id^=" + controlid + "]") вернет все элементы управления с тем же именем, но вы должны убедиться, что текст не должен присутствовать ни в одном из элементов управления

Ответ 5

Можете ли вы назначить уникальный класс CSS для каждого отдельного таймера? Таким образом, вы можете использовать селектор для класса CSS, который отлично работает с несколькими элементами div.

Ответ 6

Вы также можете попробовать обернуть два div в два div с уникальными идентификаторами. Затем выберите div на $("#div1","#wraper1") и $("#div1","#wraper2")

Здесь вы идете:

<div id="wraper1">
<div id="div1">
</div>
<div id="wraper2">
<div id="div1">
</div>

Ответ 7

Попробуйте это для выбора div первым id

$('div[id^="c-"]')