我有一个包含内容的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。我怎么能这样做?
答案 0 :(得分:4)
您可以找到div的所有子项,隐藏它们,然后找到包含ul
li
的{{1}}并显示"html"
:
ul
这是做什么的:
$("#dv")
- 查找相关的div .children('ul')
- 查找$("#dv").children('ul').hide().find('li.html').closest('ul').show();
元素.hide()
- 隐藏他们.find('a.html')
- 查找ul
个a
个ul
个元素"html"
.closest('ul')
- 获取包含ul
元素a
.show()
- 显示答案 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()
不是解决方案;)