Jquery 在定位点单击时显示/隐藏子UL

Jquery 在定位点单击时显示/隐藏子UL,jquery,Jquery,我正在创建一个带有子节点的HTML树 单击同一LI上的A标记时,我需要显示/隐藏UL 在以下示例中,当单击带有3的A标记时,包含3.1和3.2的UL应显示/隐藏 $(“a”)。单击(“click”,函数(){ $(“ul”).toggle() }); 尝试在此上下文中使用.next(),以实现所需 $("a").on("click", function(e) { e.preventDefault(); $(this).next("ul").toggle(); });

我正在创建一个带有子节点的HTML树

单击同一LI上的A标记时,我需要显示/隐藏UL

在以下示例中,当单击带有3的A标记时,包含3.1和3.2的UL应显示/隐藏

$(“a”)。单击(“click”,函数(){
$(“ul”).toggle()
});

尝试在此上下文中使用
.next()
,以实现所需

$("a").on("click", function(e) {
  e.preventDefault();
  $(this).next("ul").toggle();
});

找到父母,然后再深入到孩子身上肯定是一个低效的举动。你可以做兄弟姐妹,然后找到ul。我会简单地避免next()作为您在这一点上的依赖位置。我不需要仅限制具有simbling UL的标记,并仅为那些标记添加preventDefault吗?好的,修改为仅绑定具有同级UL元素的A标记,并防止默认。(注意:关于切换ul是否存在的最后一条注释是静音的,因为过滤器确保存在一个ul)。我不需要仅限制具有simbling ul的标签,并仅为这些标签添加默认值吗?
//bind only on the 'a's that have a sibling 'ul'
$("a").filter(function(){
    return ( $(this).siblings('ul').length > 0 );
}).on("click", function(e) {
    e.preventDefault();
    // hide sibling ul element (if it exists)
    $(this).siblings("ul").toggle();
});