Javascript 在无元素时隐藏无序列表

Javascript 在无元素时隐藏无序列表,javascript,jquery,html,css,wordpress,Javascript,Jquery,Html,Css,Wordpress,我有一个问题,一开始似乎是一个完全不需要动脑筋的简单任务 我的页面上有一个JavaScript插件,可以在Wordpress页面的侧栏中生成一个目录列表。我的目的是在#toc中的列表没有元素时隐藏该文本小部件元素。我试图用jQuery解决这个问题,但运气不好 HTML: <div class="textwidget"> <div id="toc"> <ul></ul> </div> </div> 我

我有一个问题,一开始似乎是一个完全不需要动脑筋的简单任务

我的页面上有一个JavaScript插件,可以在Wordpress页面的侧栏中生成一个目录列表。我的目的是在
#toc
中的列表没有元素时隐藏该文本小部件元素。我试图用jQuery解决这个问题,但运气不好

HTML:

<div class="textwidget">
   <div id="toc">
     <ul></ul>
   </div>
 </div>
我的脚本应该隐藏这个特定的
#toc
的父元素,因为它没有子
  • 元素,但它没有。相反,当我删除从我的if语句中,脚本隐藏了我的列表,好像其中有什么东西。然后,它还会隐藏实际包含元素的列表。我完全错过了什么吗?

    
    
    <script>
    $(document).ready(function(){
    $("#YourListID").hide();
    var a = $("#YourListID li").length();
    if (a  > 0 ) {
        $("#YourListID").show();
    }
    else {
        $("#YourListID").hide();
        }
    });
    </script>
    
    $(文档).ready(函数(){ $(“#YourListID”).hide(); var a=$(“#YourListID li”).length(); 如果(a>0){ $(“#YourListID”).show(); } 否则{ $(“#YourListID”).hide(); } });
    您可以尝试以下方法之一:

    1) 给UL一个ID并检查它的HTML。例:

    var ulHtml = $("#myULElement").html();
    if(ulHtml == ''){
        $('#toc').parent.hide();
    }
    
    2) 执行与上面相同的操作,但使用相对路径,如:

    var ulHtml = $("#toc ul").html();
    //etc...
    
    看看这是否有效。如果有,我们可以进一步详细说明。

    这样做:

    if(!$('#toc').has('ul li').length) {
        $('#toc').closest('.textwidget').hide();
    }  
    
    使用JSFIDLE

    只需使用以下命令:

    $(document).ready(function () {
        if ($('#toc ul li').length < 1) {
            $('#toc').parent().hide();
        }
    });
    
    $(文档).ready(函数(){
    如果($('toc ul li')。长度<1){
    $('#toc').parent().hide();
    }
    });
    
    您需要做的是在测试语句中添加
    .length

    jQuery(文档).ready(函数($){

    }))


    来源:

    使用长度评估是否存在
  • <div class="textwidget">
       <div id="toc">
           <ul></ul>
       </div>
     </div>
    
    
    

      if($('#toc ul li')。长度在$(文档)内。准备好检查此项了吗

      if($.trim($('#toc ul').html()).length == 0){
      $('#toc').parent().hide();
      }
      
      视情况而定

      <ul></ul>
      
      
       <ul>
      
         </ul>
      
        if ($('#toc ul li').length<1) {
                $('#toc').parent().hide();
            }
        
        if($.trim($('#toc ul').html()).length == 0){
        $('#toc').parent().hide();
        }
        
        <ul></ul>
        
        
         <ul>
        
           </ul>