2

尝试使用 jQuery 编写一个基本状态的条件,如果div.gathering不包含a.cat-link则执行以下操作。我尝试了以下方法,但似乎不起作用。任何人都可以对此有所了解吗?

if($("div.gathering:contains('a.cat-link')")){
    $(".gathering").append("<a href='#"+data[i]["categories"][0]["category_id"]+"div' class='cat-link' id='"+data[i]["categories"][0]["category_id"]+"' rel='external'>"+data[i]["categories"][0]["category_name"]+"<br />");
}
4

2 回答 2

7

这个怎么样 :

if($("div.gathering").find("a.cat-link").length == 0){
  // Conditional statement returned TRUE
}

jQuery 选择器返回匹配给定选择器的对象数组。这就是我们使用该length属性的原因。

使用的方法-$("div.gathering:contains('a.cat-link')")
将返回一个空数组,并且在针对实际存在的任何对象(即使它是一个空数组)进行测试时,JavaScript 将返回.true

例子 -

var nateArr = []; 
if (nateArr){
  // Do the dishes...
}else{
 // Eat some waffles...
}

如果您自己对此进行测试,您将永远不会停止洗这些盘子,因为即使它们nateArr包含零个元素,它仍然存在,因此条件语句将始终返回true
你的手指会皱巴巴的

于 2012-04-10T18:48:36.827 回答
2

尝试这个....

$("div.gathering:not(:contains(a.cat-link))")
    .append("<a href='#"+data[i]["categories"][0]["category_id"]+"div' class='cat-link' id='"+data[i]["categories"][0]["category_id"]+"' rel='external'>"+data[i]["categories"][0]["category_name"]+"<br />")

这只会返回没有 a.cat-link 的类聚集的 div ....

希望这可以帮助....

于 2012-04-10T19:01:47.937 回答