我想隐藏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>
答案 0 :(得分:3)
您可以使用选择器:contains()
在一行中完成此任务:
$('#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;
答案 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>