关于javascript:jQuery有条件

jQuery has conditional

尝试用jQuery写一个条件,基本上说明,如果div.gathering不包含a.cat-link,那么执行以下操作。 我尝试了以下但它似乎不起作用。 任何人都可以对此有所了解吗?

1
2
3
if($("div.gathering:contains('a.cat-link')")){
    $(".gathering").append(""+data[i]["categories"][0]["category_name"]+"<br />");
}


这个怎么样 :

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

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

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

示例 -

1
2
3
4
5
6
var nateArr = [];
if (nateArr){
  // Do the dishes...
}else{
 // Eat some waffles...
}

如果你自己测试一下,你永远不会停止洗碗,因为即使nateArr包含零元素它仍然存在,因此条件语句将始终返回true
你的手指会皱纹


试试这个....

1
2
$("div.gathering:not(:contains(a.cat-link))")
    .append(""+data[i]["categories"][0]["category_name"]+"<br />")

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

希望这可以帮助....