jQuery .has()目标不同的元素

时间:2011-03-31 19:46:09

标签: jquery

我是jQuery的新手,想要变得更好。我试图想出这段代码:

$(document).ready(function(){
    $("ul#result-list").has("div#boom")(
        function() {
        $("div.page-navigation").css("display", "none"));
    });
});

如果ul#results-list有div#boom,我正在尝试使div.page-navigation消失。尽管在网上搜索,但到目前为止还没有运气。我远吗?谢谢你的帮助

3 个答案:

答案 0 :(得分:3)

.has()返回匹配的dom元素,而不是true或false布尔值。相反,请检查length属性以确定div#boom中是否存在#result-list

这样的事情:

$(document).ready(function() {
  if ($("ul#result-list").has("div#boom").length) {
    $("div.page-navigation").hide();
  }
});

答案 1 :(得分:1)

尝试这样的事情:

$(document).ready(function() {
   if($('ul#result-list:has(div#boom)').length > 0) {
      $('div.page-navigation').hide();
   }
}

如果至少有一个具有繁荣div元素的结果列表项,这将隐藏页面导航div。

答案 2 :(得分:0)

我能看到的唯一问题,实际上是你没有链接方法:

$(document).ready(function(){
    $("ul#result-list").has("div#boom")(
        function() {
        $("div.page-navigation").css("display", "none"));
    });
});

这意味着在.has()之后您打开一个未附加到方法的括号。我建议您在这种情况下尝试使用if语句,而不是尝试链接。我发布了自己的想法,但是@DNR@Alex首先到达了那里。