Jquery div隐藏加载选择器值不起作用

时间:2018-02-07 16:23:07

标签: javascript jquery html

我有两种<div>&#39; s。这是这些结构:

<div id="acf-field" class="field field_type-relationship field_key-field_59f736725fe5d" data-field_name="levesek" data-field_key="field_59f736725fe5d" data-field_type="relationship" style="display: block;">


<!-- Hidden Blank default value -->
<input type="hidden" name="fields[field_59f736725fe5d]" value="">


<!-- Left List -->
<div class="relationship_left">
    <table class="widefat">
        <thead>
                            <tr>
                <th>
                    <input class="relationship_search" placeholder="Search..." type="text" id="relationship_fields[field_59f736725fe5d]">
                </th>
            </tr>
                                        </thead>
    </table>
    <ul class="bl relationship_list">
        <li></li><li class="load-more">
            <div class="acf-loading"></div>
        </li>
    </ul>
</div>
<!-- /Left List -->

<!-- Right List -->
<div class="relationship_right">
    <ul class="bl relationship_list ui-sortable" style="height: 192px;">
            </ul>
</div>
<!-- / Right List -->

         对我来说这是一个空的div。 (因为<ul class="bl relationship_list ui-sortable">没有li孩子)我也有field2field3个ID。

我想表明那个拥有li的div并隐藏那些不包含任何内容的div(它可能是3个空(显示全部)或只有一个(隐藏其他)包含值)

所以我做了这个jQuery但没有工作:

jQuery(document).ready(function(){
jQuery( "#acf-field" ).show();
jQuery( "#acf-field2" ).show();
jQuery( "#acf-field3" ).show();
if (jQuery( "#acf-field" ).find( ".ui-sortable" ).children().eq(0)) {
    jQuery( "#acf-field" ).show();
    jQuery( "#acf-field2" ).hide();
    jQuery( "#acf-field3" ).hide();
}
if (jQuery( "#acf-field2" ).find( ".ui-sortable" ).children().eq(0)) {
    jQuery( "#acf-field2" ).show();
    jQuery( "#acf-field" ).hide();
    jQuery( "#acf-field3" ).hide();
}
if (jQuery( "#acf-field3" ).find( ".ui-sortable" ).children().eq(0)) {
    jQuery( "#acf-field3" ).show();
    jQuery( "#acf-field2" ).hide();
    jQuery( "#acf-field" ).hide();
}

2 个答案:

答案 0 :(得分:0)

字段 - acf-field,acf-field2和acf-field3是互斥的吗?如果没有那么“if条件”需要用else else的配对重写。

答案 1 :(得分:0)

检查ul的内容是否为空字符串。如果是,请隐藏它。

#acf-field的示例代码:

jQuery(document).ready(function(){
  jQuery( "#acf-field" ).show();
  if (jQuery( "#acf-field" ).find( ".ui-sortable" ).html()=="") {
      jQuery( "#acf-field" ).hide();
  }
});