javascript - 向嵌套列表中的父节点 (<a>) 添加类

标签 javascript html css

<a>最后里面<li>最里面的<ul>有一个名为 current 的类.它突出显示事件链接。

我想突出显示此链接的所有父链接。

HTML

<ul>
    <li>
        <a href="a.html">Samsung</a>
        <ul>
            <li>
                <a href="b.html">Galaxy</a>
                <ul>
                    <li>
                        <a href="c.html">Galaxy Note 4</a>
                    </li>
                    <li>
                        <a href="c.html" class="current">Galaxy S 5</a>
                    </li>
                </ul>
            </li>
        </ul>
    </li>
</ul>

Galaxy S 5 具有类 current ,但我还想添加类 current到父链接(SamsungGalaxy)。

最佳答案

  1. 通过给它一个 id 来定义最外层的父元素。
  2. 获取具有当前类的元素并将其分配给临时变量。
  3. 遍历以当前元素开始的元素,并将临时变量的值更改为 temp.parentNode。如果元素父节点是列表项,则将当前类添加到列表元素的第一个子元素。

var until = document.getElementById("list"),
    crnt = document.getElementsByClassName('current'),
    tmp = crnt.item(0);

while(tmp !== until) {
  if(tmp.tagName === "LI") {
    tmp.children.item(0).classList.add("current");
  }
  tmp = tmp.parentNode;
}
.current {
  color: tomato;
}
<ul id="list">
  <li>
    <a href="a.html">Samsung</a>
    <ul>
      <li>
        <a href="b.html">Galaxy</a>
        <ul>
          <li>
            <a href="c.html">Galaxy Note 4</a>
          </li>
          <li>
            <a href="c.html" class="current">Galaxy S 5</a>
          </li>
        </ul>
      </li>
    </ul>
  </li> 
</ul>

关于javascript - 向嵌套列表中的父节点 (<a>) 添加类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37819527/

相关文章:

javascript - 使用 Jest Enzyme 测试 React Reducer

javascript - 使 &lt;script&gt; append 到正文后立即工作?

javascript - 限制答案数量复选框

html - IE 7 自动换行错误

html - 如何使这个 100% 高度 + 列溢出布局在 Firefox 和 IE 中工作?

html - 重叠 div 并保持响应

javascript - 我可以使用 JavaScript 删除 HTML 代码中的一行吗?

javascript - &lt;input type "multiple"> 中的条件 ="file"属性与 AngularJS

javascript - 我正在使用 javascript 查询 SQL 数据,并希望数据以正确的结构加载到同一页面中

c# - 从应用程序内将包含 Mysql 数据的 HTML 电子邮件发送到表中