Javascript 在无元素时隐藏无序列表
我有一个问题,一开始似乎是一个完全不需要动脑筋的简单任务 我的页面上有一个JavaScript插件,可以在Wordpress页面的侧栏中生成一个目录列表。我的目的是在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> 我
#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>