我正在尝试使用 $contains 检测某个元素是否已经附加到 DOM 中
var isAlreadyAppend = 函数(键){
return ($.contains($('#allBellMessageId'), $("#" + key)));
};
var test= function(){
if(!isRepeated('a')){
//Append into DOM
};
if(!isRepeated('b')){
//Append into DOM
};
if(!isRepeated('c')){
//Append into DOM
};
if(!isRepeated('a')){
//Append into DOM
};
}
添加键 a,b,c,a 仍然返回 false, false, false, false。
生成的html代码就是这个
<li id="bellMessagesId" class="dropdown notifications">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
<ul id="allBellMessageId" class="dropdown-menu bellMessage-dropdown-menu">
<div class="col-xs-12">
<li id="a" class="col-xs-12">
<li id="b" class="col-xs-12">
<li id="c" class="col-xs-12">
<li id="a" class="col-xs-12">
</ul>
</li>
<li>
渲染结果是 4 条消息,a,b,c,a。
我做错了什么?
问候。
最佳答案
isRepeated()
不返回任何内容,它只是执行。因为它不返回任何内容,所以它会返回 undefined
,因此当您检查它时,它会显示 undefined
并评估为 false
。所以试试这个:
var isRepeated(key) = function(key){
return $.contains($('#fooElements'), $("#" + key))
};
除此之外,我对 $.contains
不太熟悉,因此您可以尝试以下操作:
var isRepeated(key) = function(key){
return $('#fooElements').find("#" + key).length ? true : false;
};
我一直用它来检查某些东西是否存在,它就像一个魅力。
关于javascript - JQuery 包含不工作的多个 li,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28942541/