Javascript 无法选择和更改UL子菜单项的类别

Javascript 无法选择和更改UL子菜单项的类别,javascript,Javascript,我正在将一些jQuery代码更新为纯JS。目前,代码正在使用jQuery最近的方法来选择最近的UL。我需要帮助找到使用javascript选择最接近UL的正确方法 以下是HTML代码的示例: <ul class ="m_nav_tier m_nav_tier1"> <li data-nav-tier="1"> <a class="m_drop" href="#">Link1</a> <ul class=

我正在将一些jQuery代码更新为纯JS。目前,代码正在使用jQuery最近的方法来选择最近的UL。我需要帮助找到使用javascript选择最接近UL的正确方法

以下是HTML代码的示例:

<ul class ="m_nav_tier m_nav_tier1">
    <li data-nav-tier="1">
        <a class="m_drop" href="#">Link1</a>
        <ul class="m_nav_tier m_nav_tier2">
             <li>One</li>
             <li>Two</li>
             <li>Three</li>
        </ul>
    </li>
</ul>

但问题是我必须给数组设置一个值。我试着放置,但没有用。如何根据选择的LI更新类

据我所知,您的类以.css为基础,您可以复制并从1更改为2,以及它有什么功能 我不知道wright.js,但是我看不到你告诉JavaScript在哪里收集这个函数'm_nav_tier1'来转换成这个函数
document.querySelector'ul.m_nav_tier2'[9].className+=active

检查这个,这可能有助于解决您的问题mdrop变量是什么?由于没有定义,您提供的fiddle在一开始就崩溃了。m_drop是LI元素上的css转换
var mdrop = document.getElementsByClassName('m_drop');

for (i = 9; i < mdrop.length; i++) {
  //Forward
  mdrop[i].onclick = function () {

  //make tier 1 inactive
  var tier1 = document.getElementsByClassName('m_nav_tier1')[1];
  tier1.className += " inactive";

  //find closest UL and make it active
  document.querySelector('ul .m_nav_tier2')[9].className += " active";
};
document.getElementsByClassName('m_nav_tier2')[9].className += " active";