我的代码中存在一个复制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
作为选择器?
答案 0 :(得分:1)
尝试这样:
$(function(){
console.log( 'Wrong: ' + $('#dialog').length );
console.log( 'Correct: ' + $('div#dialog').length );
});
答案 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
}
});
希望这会对你有所帮助