Javascript 如何-如果div有子div,则展开此div?

Javascript 如何-如果div有子div,则展开此div?,javascript,jquery,class,if-statement,Javascript,Jquery,Class,If Statement,所以,如果一个手风琴师有信息/身体,我怎么能提醒这个呢?信息是动态加载的,如果div中有信息(不是全部),则如下所示: <div class="panel panel-default"> <div class="panel-heading"></div> <div id="collapse_1" class="accordion-body collapse"></div> </div> 提前感谢。.has(

所以,如果一个手风琴师有信息/身体,我怎么能提醒这个呢?信息是动态加载的,如果div中有信息(不是全部),则如下所示:

<div class="panel panel-default">
    <div class="panel-heading"></div>
    <div id="collapse_1" class="accordion-body collapse"></div>
</div>

提前感谢。

.has()
返回一个jQuery对象,因此它将始终是真实的。。。您需要检查
.has(…).length
在哪里放置
.accordion toggle>i
元素您可能不想使用单击功能--有其他方法触发accordion,这可能会绕过您的功能。相反,在accordion show事件中使用回调。在.panel标题中,我认为这不会带来良好的用户体验。你不想提醒人们死亡,如果身体里没有内容,最好把你的“空”信息放在那里,然后再进行扩展。没有结果的点击是令人困惑的。为什么不在那里放置一条被正文覆盖的默认“空”消息呢?
。children(“div.accordion-body”)。长度>0
可能更有效
.hasClass
必须测试上面的每个孩子
$('.accordion-toggle > i').click(function () {                   
    if ($(this).closest(".panel-default").children("div").hasClass('accordion-body')) {
       //var open = $(this).toggleClass('fa-chevron-down fa-chevron-up');
       alert('expandable section')
    }else{
       alert('nothing to expand')
    }
});
$('.accordion-toggle > i').click(function () {
    if ($(this).closest('.panel-default').has('div.accordion-body')) {
        //var open = $(this).toggleClass('fa-chevron-down fa-chevron-up');
        //$.toggle('open');
        alert('expandable section')
    } else {
        alert('nothing to expand')
    }
});
$('.accordion-toggle > i').click(function () {                   
    if ($(this).closest(".panel-default").children("div").hasClass('accordion-body')) {
       //var open = $(this).toggleClass('fa-chevron-down fa-chevron-up');
       alert('expandable section')
    }else{
       alert('nothing to expand')
    }
});