我正在尝试在jQuery中选择具有相同ID的所有<div>
。我该怎么做?
我尝试了这个并且没有用
jQuery('#xx').each(function(ind,obj){
//do stuff;
});
答案 0 :(得分:380)
虽然这里有其他正确答案(例如使用类),但从学术角度来看,当然可以有多个具有相同ID的div,并且可以使用jQuery选择它们。
使用时
jQuery("#elemid")
它只选择具有给定ID的第一个元素。
但是,当您按属性选择时(例如 id ),它会返回所有匹配的元素,如下所示:
jQuery("[id=elemid]")
这当然适用于任何属性的选择,您可以通过指定相关代码来进一步优化您的选择(例如 div )
jQuery("div[id=elemid]")
答案 1 :(得分:39)
我会使用不同的ID,但为每个DIV分配相同的类。
<div id="c-1" class="countdown"></div>
<div id="c-2" class="countdown"></div>
这还有一个额外的好处,就是能够根据jQuery的返回值重新构建ID('。countdown')。length
好的是为每个倒数计时器添加多个类。 IE:
<div class="countdown c-1"></div>
<div class="countdown c-2"></div>
<div class="countdown c-1"></div>
这样你就可以获得两全其美的效果。它甚至允许重复'IDS'
答案 2 :(得分:36)
您的文档不应包含两个具有相同ID的div。这是invalid HTML,因此,底层DOM API不支持它。
id = name [CS]此属性分配 元素的名称。这个名字必须 在文档中是独一无二的。
您可以为每个div指定不同的ID,并使用$('#id1, #id2)
选择它们。或者将同一个类分配给两个元素(例如.cls
),并使用$('.cls')
选择它们。
答案 3 :(得分:4)
$("div[id^=" + controlid + "]")
将返回具有相同名称的所有控件,但您需要确保文本不应出现在任何控件中
答案 4 :(得分:2)
您可以为每个不同的计时器分配一个唯一的CSS类吗?这样你就可以使用CSS类的选择器,它可以与多个div
元素一起使用。
答案 5 :(得分:2)
尝试使用第一个id
选择div$('div[id^="c-"]')
答案 6 :(得分:1)
您也可以尝试将两个div包装在两个具有唯一ID的div中。然后按$("#div1","#wraper1")
和$("#div1","#wraper2")
你走了:
<div id="wraper1">
<div id="div1">
</div>
<div id="wraper2">
<div id="div1">
</div>