Javascript 从锚定到列表中的span元素进行DOM遍历
我不知道如何遍历DOM,从Javascript 从锚定到列表中的span元素进行DOM遍历,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,我不知道如何遍历DOM,从开始,我想进入 剧本 <script> $('.open-menu-link').click(function(e){ alert(e.currentTarget); }); </script> 代码中的只有一个子节点,即text node+,这就是e.currentTarget.children[
开始,我想进入
剧本
<script> $('.open-menu-link').click(function(e){
alert(e.currentTarget);
});
</script>
代码中的
只有一个子节点,即text node+,这就是e.currentTarget.children[1]
给您未定义的原因。
谈到dom遍历,您应该从node
开始。这就是我从你的问题中可以推断出来的。
$(函数(){
$(“.打开菜单链接”)。单击(函数(e){
log(e.target.parentNode.nextElementSibling);
log(e.target.parentNode.parentNode.children[1]);
});
});代码>
-
您需要使用preventDefault()
,因为您的类是一个链接。通过单击,它会将您重定向到链接
$(“.打开菜单链接”)。单击(函数(e){
console.log($(this.parent().next())
e、 预防默认值()
})
-
-
-
-
-
-
-
哦,现在更清楚了。。。。非常感谢。但是我必须点击“+”来打开菜单……顺便说一句,如果我把跨度放在锚之外(就在),我可以到达父对象,然后是子对象,但是用我的方式,我可以轻松地将“+”与“haschilds”文本对齐,而不用担心css……如果你使用jQuery,请这样标记您的问题。@AlessandraRefinale,我已经用一个有效的代码更新了我的答案,单击
运行代码片段
,然后亲自查看ul
节点,无论是否阻止偶数not@Maximus更新了答案
<ul class="menu">
<li><a href="#work">Work</a></li>
<li class="menu-item-has-children"><a href="#about">Haschildren <span class = "open-menu-link">+</span></a>
<ul class="sub-menu">
<li><a href="#link1">Child 1</a></li>
<li><a href="#link2">Child 2</a></li>
<li><a href="#link3">Child 3</a></li>
</ul>
</li>
<li><a href="#careers">Careers</a></li>
<li><a href="#contact">Contact</a></li>
</ul>