除了具有类html标签的li之外,如何在div中显示所有ul,li标签

时间:2013-02-05 09:34:34

标签: jquery

我有一个包含内容的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>

我希望动态显示无秒和第3个ul。我怎么能这样做?

8 个答案:

答案 0 :(得分:4)

您可以找到div的所有子项,隐藏它们,然后找到包含ul li的{​​{1}}并显示"html"

ul

Live Example | Source

这是做什么的:

答案 1 :(得分:1)

您可以在jQuery

下方使用
$("#dv ul:nth-child(2),#dv ul:nth-child(3)").hide()

答案 2 :(得分:1)

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

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

编辑: @ByScripts建议使用closest()代替parent()

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

答案 3 :(得分:0)

这是你想要的吗?

$("#dv ul").hide(); // hide all divs
$("#dv a.html").closest("ul").show(); // show the div that contains a.html

答案 4 :(得分:0)

如果你想要显示除了第一个ul之外的所有ul,那么试试这个代码:

$("#dv ul").css('display','none');
if($("#dv ul").hasClass('html')){
$(".html").closest('ul').('display','block');
 }

答案 5 :(得分:0)

如果要求隐藏第二个和第三个ul,我建议使用slice

$('#dv ul').slice(1).hide();

答案 6 :(得分:0)

据我所知,您希望删除带有<li>类'html'的a。以下是代码

$("#div ul li a.html").hide(function(){
    $(this).parent().hide();    
});

答案 7 :(得分:0)

基于xFortyFourx回答:

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

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