javascript - 如果子 LI 包含特定类,则将类应用于父 UL

标签 javascript jquery html css

我目前正在开发一个侧边菜单,它将列出相关部分中的所有页面。除了一件小事,我几乎已经把它分类了。我们有 2 级下拉菜单,这意味着有很多链接。

事件的 LI 将具有 .current_page_item 类。我正在尝试找出一种说法: 如果 UL 有一个包含 .current_page_item 类的子 LI,则将 .side_open 类应用于 UL。

$(document).ready(function(){
  
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li>Demo 1
    <ul>
      <li class="current_page_item">Demo 11</li>
    </ul>
  </li>
  <li>Demo 2
    <ul>
      <li>Demo 21</li>
    </ul>
  </li>
  <li>Demo 3
    <ul>
      <li>Demo 31</li>
    </ul>
  </li>
  <li>Demo 4
    <ul>
      <li>Demo 41</li>
    </ul>
  </li>
</ul>

如果有人对如何做到这一点有任何想法,我们将不胜感激!

最佳答案

据我了解,如果选择了 li,您希望为直接父级设置样式。 (如果我错了请评论我)

所以,下面应该是你想要实现的:
(用一些 Javascript 完成)

$(document).ready(function() {
  $('ul>li>ul>li').each(function() {
    if ($(this).hasClass('current_page_item')) {
      $(this).parent().addClass('side_open');
    }
  });
});
.side_open {
  background: #ddd;
}

.current_page_item {
  background: #bbb;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li>Demo 1
    <ul>
      <li class="current_page_item">Demo 11</li>
    </ul>
  </li>
  <li>Demo 2
    <ul>
      <li>Demo 21</li>
    </ul>
  </li>
  <li>Demo 3
    <ul>
      <li>Demo 31</li>
    </ul>
  </li>
  <li>Demo 4
    <ul>
      <li>Demo 41</li>
    </ul>
  </li>
</ul>

关于javascript - 如果子 LI 包含特定类,则将类应用于父 UL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55059688/

相关文章:

jquery - 响应式导航 - 如果有 child 则添加一个类(class)

javascript - 单击取消选中选中的 radio

jquery - 如何在 ajax 响应的结果中删除 div 中的 css 类

javascript - 我想用一个按钮更改文本

jquery .offset().top - 一定数量的像素(FF 和 IE 的问题)

javascript - 停止表单在后退按钮上再次执行

html - 将元素放在中心

javascript - 已安装 React Native 应用程序但在主屏幕或应用程序屏幕上不可见

javascript - 禁用 Div 标签时无法获取值

javascript - Plotly 曲面图数据是如何映射的?