-1

我有一个包含内容的 Div

<div id="dv">

<ul><li><a class="html">abcd</a></li></ul>

<ul><li><a class="bold">cdef</a></li></ul>

<ul><li><a class="bold">xyz</a></li></ul>

</div>

我想动态显示第二个和第三个 ul。我怎样才能做到这一点 ?

4

8 回答 8

4

您可以找到 div 的所有子项,隐藏它们,然后找到ul包含liwith 类"html"并显示ul

$("#dv").children('ul').hide().find('li.html').closest('ul').show();

实例| 资源

那是做什么的:

于 2013-02-05T09:37:43.040 回答
1

我能想到的最简单的是这个

$("#dv li a:not(.html)").parent().hide();

编辑:@ByScripts 建议使用closest()而不是parent().

$("#dv li a:not(.html)").closest("ul").hide();
于 2013-02-05T09:42:55.893 回答
1

您可以在下面使用jQuery

$("#dv ul:nth-child(2),#dv ul:nth-child(3)").hide()
于 2013-02-05T09:40:56.957 回答
0

据我了解,您想删除<li>with aclass 'html' 。下面是代码

$("#div ul li a.html").hide(function(){
    $(this).parent().hide();    
});
于 2013-02-05T09:42:07.703 回答
0

基于 xFortyFourx 答案:

$("#dv a:not(.html)").closest('ul').hide();

编辑:我认为很多参与者没有阅读标题。OP想要<ul>根据元素隐藏class="html"。不是解决方案;)<a>slice()

于 2013-02-05T09:48:25.213 回答
0

这是你想要的吗?

$("#dv ul").hide(); // hide all divs
$("#dv a.html").closest("ul").show(); // show the div that contains a.html
于 2013-02-05T09:37:24.070 回答
0

如果您想显示除第一个 ul 之外的所有 ul,请尝试以下代码:

$("#dv ul").css('display','none');
if($("#dv ul").hasClass('html')){
$(".html").closest('ul').('display','block');
 }
于 2013-02-05T09:38:57.970 回答
0

如果需要隐藏第二个和第三个,我建议使用sliceul

$('#dv ul').slice(1).hide();
于 2013-02-05T09:39:18.623 回答