如果子div没有html,则隐藏父div

时间:2013-12-20 13:05:16

标签: javascript jquery html css wordpress

如果孩子div没有内容,我一直在寻找隐藏父div的不同方法,我已经让它在一些小提琴中工作,但似乎在我的实际网站上没有任何效果。

我正在编辑Wordpress插件CPT Bootstrap轮播,我添加了一个用于显示推荐的新自定义字段,但目前只有一个来自客户端的推荐,所以因此想要在div为emtpy时隐藏按钮。

以下是该页面的链接:http://rookdesigns.co.uk/portfolio/

这是我的html和jQuery:

<div class="test btn btn-primary">Testimonials>>
    <div class="carousel-quotes">
        <?php echo $image[ 'reff']; ?>
    </div>
</div>



jQuery(".carousel-quotes:empty").parent().hide();

我也在使用这段jQuery来淡出和关闭子div

jQuery(".test").click(function(){
jQuery('.carousel-quotes').fadeToggle();

不确定这是否会影响事情。

非常感谢任何帮助,

提前致谢

一切顺利

哈利

2 个答案:

答案 0 :(得分:1)

:empty无效,因为有文本节点。

您可以更改PHP,以便在div为空时在其中没有空格,或者您可以使用filter

jQuery(".carousel-quotes").filter(function() {
    return !$.trim($(this).text());
}).parent().hide();

或者实际上,对于您的特定用例,我们可以避免在过滤函数中调用$()text()

jQuery(".carousel-quotes").filter(function() {
    return !$.trim(this.innerHTML);
}).parent().hide();

答案 1 :(得分:0)

如果JavaScript是您可以接受的解决方案,则此代码段应该有效:

工作 DEMO

<强> JS

        var ln = $.trim($('.carousel-quotes').text()); /* trim is important here to remove any white space inside the div */
        if (ln.length === 0) 
        {
            $('.test').hide();
        }

修改

页面中存在JS错误,可能导致问题:

'fadeSpeed'     : 2000,
'targetHeight'  : 100%
'effect'        : 'effect-6'
'direction'     : 'vertical'
上述值中缺少

,

'fadeSpeed'     : 2000,
'targetHeight'  : 100%,
'effect'        : 'effect-6',
'direction'     : 'vertical'

在纠正后检查它是否有效!