Wordpress& jQuery:如果span为零,则隐藏父div

时间:2017-02-22 19:11:18

标签: javascript php jquery wordpress

我想在wordpress网站上这样做。我已经搜索并尝试了一些已经发布的建议,但没有一个有效。

如果页面加载时包含零,我想隐藏范围。

我使用了以下代码(置于头部)但它不会隐藏跨度。

<script type="text/javascript">
(function ($) {
var propertydata = $('span.property-data');
if (propertydata.text().trim() === '0') {
  propertydata.closest('span.propertydata').hide();
}
});
</script>

这是我试图隐藏的HTML:

<div id="dbst-show12" class="column rows other">
    Year Built : 
    <span class="property-data">0</span>
</div>

最终,我希望隐藏父母&#34;列&#34;如果可能的话,如果我能让零消失,我会解决。

2 个答案:

答案 0 :(得分:0)

您可以使用jQuery选择器选择范围内的所有0,如下所示:

var selecton = $("span:contains(0)");

然后你可以使用jQuery .hide()方法隐藏所有元素:

selection.hide();

您还需要确保该功能包含在$(文档).ready中,以便浏览器知道一旦页面加载就可以运行您的功能。

这将是整个片段:

$(document).ready(function(){
var selection = $("span:contains(0)");
selection.hide();
});

以下是指定代码的JSFiddle链接:https://jsfiddle.net/kgill/uzpqdsoj/1/

您可以通过选择带有jQuery选择器的div并以相同的方式隐藏它来隐藏整个列。

答案 1 :(得分:0)

问题在于:

var propertydata = $('span.property-data');

proertydata从所有跨文本中获取所有值,因此它永远不会等于0。

您可能希望这样做:

<script type="text/javascript">
(function ($) {
    jQuery.each( $('span.property-data'), function( i, val ) {
        if ($(val).text().trim() === '0') {
            $(val).hide(); //hides only the span
            $(val).parent().hide(); //if you want to hide parent div also
        }
    });
})(jQuery);
</script>

这是一个JSFiddle: https://jsfiddle.net/bv7u4hxb/1/