Я пытаюсь выбрать все <div>
с тем же ID в jQuery. Как это сделать?
Я пробовал это, и он не работал
jQuery('#xx').each(function(ind,obj){
//do stuff;
});
Я пытаюсь выбрать все <div>
с тем же ID в jQuery. Как это сделать?
Я пробовал это, и он не работал
jQuery('#xx').each(function(ind,obj){
//do stuff;
});
Я бы использовал разные идентификаторы, но назначил каждый 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"
Хотя здесь есть и другие правильные ответы (например, использование классов), с академической точки зрения, конечно, возможно иметь несколько div с одним ID, и их можно выбрать с помощью jQuery.
Когда вы используете
jQuery("#elemid")
он выбирает только первый элемент с данным ID.
Однако, когда вы выбираете по атрибуту (например, id в своем случае), он возвращает все соответствующие элементы, например:
jQuery("[id=elemid]")
Это, конечно, работает для выбора по любому атрибуту, и вы можете дополнительно уточнить свой выбор, указав соответствующий тег (например, div в вашем случае)
jQuery("div[id=elemid]")
В вашем документе не должно быть двух разделов с одним и тем же идентификатором. Это недействительный HTML, и в результате базовый DOM API не поддерживает его.
Из HTML-стандарт:
id = name [CS] Этот атрибут присваивает имя элемента. Это имя должно быть уникальным в документе.
Вы можете назначить разные идентификаторы для каждого div и выбрать их с помощью $('#id1, #id2)
. Или назначьте один и тот же класс обоим элементам (например, .cls
) и используйте $('.cls')
, чтобы выбрать их оба.
$("div[id^=" + controlid + "]")
вернет все элементы управления с тем же именем, но вы должны убедиться, что текст не должен присутствовать ни в одном из элементов управления
Можете ли вы назначить уникальный класс CSS для каждого отдельного таймера? Таким образом, вы можете использовать селектор для класса CSS, который отлично работает с несколькими элементами div
.
Вы также можете попробовать обернуть два div в два div с уникальными идентификаторами. Затем выберите div на $("#div1","#wraper1")
и $("#div1","#wraper2")
Здесь вы идете:
<div id="wraper1">
<div id="div1">
</div>
<div id="wraper2">
<div id="div1">
</div>
Попробуйте это для выбора div первым id
$('div[id^="c-"]')