我有一个带有嵌套无序列表的无序列表(树),依此类推......我想要完成的是隐藏所有不在被点击的.subnav
内的li > a
1}}。
看看这个jsfiddle。
示例:
点击A
=> A1
和A2
已打开
点击A1
=> A1-a
和A1-b
已打开
点击A2
=> A2-a
和A2-b
已打开,且A1
应已关闭
点击B
=> B1
和B2
已打开,应关闭整个A
我想隐藏主ul
中不需要的所有内容,只留下被点击的元素。它应该可以无限制地嵌套:)
我尝试了不同的东西,但都没有按预期工作:
$('.subnav').not(subnav).hide();
$('.subnav').not(that).hide();
$('.subnav').not(this).hide();
我不知道如何完成这种行为。
非常感谢您的帮助。
答案 0 :(得分:2)
最简单的,我建议:
$('.nav > li > a').click(function(e) {
$(this).next('.subnav').toggle()
// find the ancestor 'li' elements:
.parents('li')
// select the siblings (also 'li' elements):
.siblings()
// find the '.subnav' elements within those sibling 'li' elements:
.find('.subnav')
// hide them:
.hide();
});
参考文献: