Jquery在div

时间:2017-12-27 10:33:57

标签: jquery html

我想隐藏div中的span,当它为null或未定义时。

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

所以我想最后:

1
400
hello

我尝试过类似的事情:

$("#pricetag").filter(function () {
        return $('span', this).filter(function () {
            return $(this).text().trim() == 'null' || $(this).text().trim() == 'undefined' 
        }).length;
    }).hide();

但它不起作用,它隐藏了所有的div。

$("#pricetag").filter(function() {
  return $('span', this).filter(function() {
    return $(this).text().trim() == 'null' || $(this).text().trim() == 'undefined'
  }).length;
}).hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="pricetag">1
  <div class="price">400</div>
  <span>hello</span>
  <span>undefined</span>
</div>

2 个答案:

答案 0 :(得分:3)

您可以使用选择器:contains()在一行中完成此任务:

&#13;
&#13;
$('#pricetag span:contains(undefined),#pricetag span:contains(null)').hide();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="pricetag">1
    <div class="price">400</div>
    <span>hello</span>
    <span>undefined</span>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:3)

您应该.filter() <SPAN>元素和hide()他们。

$("#pricetag span").filter(function () {
      return $(this).text().trim() == 'null' || $(this).text().trim() == 'undefined' 
}).hide();

$("#pricetag span").filter(function() {
  return $(this).text().trim() == 'null' || $(this).text().trim() == 'undefined'
}).hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="pricetag">1
  <div class="price">400</div>
  <span>hello</span>
  <span>undefined</span>
</div>