Jquery当其中一个span为空时隐藏父div

时间:2017-11-20 15:13:56

标签: jquery

我有多个div,我想隐藏第一个div,因为他的一个孩子是空的。我能怎么做? 这是html的结构:

<div class="pricetag">1
    <div class="price">400</div>
    <span>hello</span>
    <span></span>
</div>

<div class="pricetag">2
    <div class="price"></div>
</div>

<div class="pricetag">3
    <div class="price">250</div>
</div>

我试着这样做:

   $('.pricetag span:empty').parent.hide();

1 个答案:

答案 0 :(得分:1)

您需要使用括号才能在parent之后调用该函数  只是不是财产。在您当前的代码中,它可能会引发错误:Uncaught TypeError: Cannot read property 'hide' of undefined,因为parent属性为undefined

$('.pricetag span:empty').parent().hide();
//                          ----^^----

$('.pricetag span:empty').parent().hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="pricetag">1
  <div class="price">400</div>
  <span>hello</span>
  <span></span>
</div>

<div class="pricetag">2
  <div class="price"></div>
</div>

<div class="pricetag">3
  <div class="price">250</div>
</div>
或者你可以使用:has() mothod的jQuery has()伪类选择器。

$('.pricetag:has(span:empty)').hide();

$('.pricetag:has(span:empty)').hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="pricetag">1
  <div class="price">400</div>
  <span>hello</span>
  <span></span>
</div>

<div class="pricetag">2
  <div class="price"></div>
</div>

<div class="pricetag">3
  <div class="price">250</div>
</div>