在jQuery中查找多个重复div的数量

时间:2014-11-06 07:52:17

标签: jquery

我的代码中存在一个复制jqueryUI对话框的问题(似乎很多人都遇到了这个问题)。带有对话框ID的div包含div class='ui-dialog...',如下所示:

<div class='ui-dialog...' >
    <div id='dialogId'

<div class='ui-dialog...' >
    <div id='dialogId'

我想要做的是跟踪具有相似ID的div的数量。我试过了

$('#dialogId').length

但即使Chrome开发工具显示多个DOM副本(第一个的样式为display: none,第二个为display: block),它总是返回1。我猜选择器在封闭的父div内返回,这就是为什么它总是.length = 1。如何计算父div的数量(class等同于ui-dialog)和子div的id等于{{ 1}}使用dialogId作为选择器?

3 个答案:

答案 0 :(得分:1)

尝试这样:

$(function(){

  console.log( 'Wrong: ' + $('#dialog').length );
  console.log( 'Correct: ' + $('div#dialog').length );
});

DEMO

答案 1 :(得分:0)

您需要使用filter() DEMO

var duplicated= $('div').filter(function(){
    return $(this).attr('id')=='dialogId';
}).length;
alert(duplicated);

答案 2 :(得分:0)

你可以尝试这样的事情

var count=0;
$("div").each(function(index,element){
    if($(this).is("#dialogId")){
        count=count+1; // or whatever code you want
    }
});

此处为jsfiddle demo

希望这会对你有所帮助