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



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



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



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

7 ответов:

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

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

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


ОК как насчет добавления нескольких классов к каждому таймеру обратного отсчета. Т. е.:

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

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

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

при использовании

jQuery("#elemid") 

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

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

jQuery("[id=elemid]") 

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

jQuery("div[id=elemid]") 

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

С стандарт HTML:

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

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

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

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

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

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

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

вот так:

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

Comments

    Ничего не найдено.