计算具有相同id的div元素数量 JQUERY

9

我创建了一个或多个具有相同ID的DIV。 我想使用JQUERY跟踪DIV的数量。 以下代码似乎无效。

var divid = "123456";
var count_id_len = $("#parentdiv").find("#"+divid).length;
console.log(count_id_len);

结果始终是 1,即使有多个。

7
ID必须是唯一的。 - j08691
2
元素的ID必须是唯一的,使用class或其他属性来分组相似的元素。 - Arun P Johny
哦,原来如此,谢谢。 - leeshin
3个回答

15
粘贴以下代码,它将给出计数。
var conveniancecount = $("div[class*='conveniancecount']").length;

这是一个不错的想法。我会尝试一下。我会回复你的。 - leeshin
如果你已经得到了解决方案,请标记为答案,否则在这里留言,我会帮助你解决疑惑。 - Sasidharan
$('.yourclassName') 怎么样? - Sachin Jain
@Sasidharan 因为在您的选择器中,所有具有类名“myconveniancecount、conveniancecounted”等的div都将被选中。 - Sachin Jain

3
也许这对你有用:
我一直在制作内部ajax调用,可能导致容器在某些情况下一次又一次地包装。我用以下方法解决了这个问题:
jQuery("div[id='yourWrapper_1']").length

尝试将其解除包装,因为DOM上不应重复使用ID。希望这能帮到你。关于更多信息,请参考http://api.jquery.com/unwrap/。祝好!

我发现在调查导致重复DOM元素被添加的错误时,能够计算具有重复ID的DOM元素数量非常有用。是的,这是无效的HTML,但是为了进行错误调查,能够计数仍然非常有用。 - Tim

3

在W3C中,不建议多次使用相同的id。看看他们对此的说法:

id属性为HTML元素指定了一个唯一的标识符(id属性值必须在HTML文档内是唯一的)。 id属性可以用于指向样式表中的样式。 id属性也可以被JavaScript(通过HTML DOM)用来修改具有特定id的HTML元素。

建议:

对于您想要分组的所有div,使用class名称,并使用以下选择器:

$('.myClassName')

以下是更多参考资料:

1. 为什么Id需要唯一


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接