Javascript 从锚定到列表中的span元素进行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[

我不知道如何遍历DOM,从
开始,我想进入

剧本

<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>