我想在jQuery中选择所有具有相同ID的<div>
。如何实现?
我尝试过这个,但它没有起作用。
jQuery('#xx').each(function(ind,obj){
//do stuff;
});
我想在jQuery中选择所有具有相同ID的<div>
。如何实现?
我尝试过这个,但它没有起作用。
jQuery('#xx').each(function(ind,obj){
//do stuff;
});
虽然这里还有其他正确的答案(例如使用类),但从学术角度来看,拥有多个具有相同ID的div是完全可能的,并且可以使用jQuery选择它们。
当你使用
jQuery("#elemid")
它仅选择具有给定ID的第一个元素。
然而,当您通过属性选择(例如,在您的情况下为id)时,它将返回所有匹配的元素,如下所示:
jQuery("[id=elemid]")
当然,这对于任何属性的选择都适用,并且您可以通过指定相关标签(例如在您的情况下为div)来进一步细化您的选择。
jQuery("div[id=elemid]")
我会使用不同的ID,但为每个DIV分配相同的类。
<div id="c-1" class="countdown"></div>
<div id="c-2" class="countdown"></div>
这样做的另一个好处是可以根据jQuery('.countdown').length的返回值重构IDs。
好的,要怎么给每个倒计时器添加多个类呢?比如:
<div class="countdown c-1"></div>
<div class="countdown c-2"></div>
<div class="countdown c-1"></div>
这样你就可以兼顾两个世界的优点。它甚至允许重复的“IDS”。
$('div[id^="c-"]')
$("div[id^=" + controlid + "]")
将返回所有具有相同名称的控件,但您需要确保文本不会出现在任何控件中。
您能为每个不同的计时器分配一个唯一的CSS类吗?这样您就可以使用CSS类的选择器,这将与多个
class
确实是HTML的一部分,但它是专门添加以支持CSS的(当时JS不存在,而且在HTML中class
没有任何效果)。 - bfontaine你也可以尝试将这两个div包装在带有唯一id的两个div中。然后通过$("#div1","#wraper1")
和$("#div1","#wraper2")
选择div。
就是这样:
<div id="wraper1">
<div id="div1">
</div>
<div id="wraper2">
<div id="div1">
</div>