javascript - 在 jQuery 的嵌套列表中选择没有子项的列表项父项

标签 javascript jquery html

我有这个嵌套列表:

<ul>
  <li>Item 1
    <ul>
      <li>Item 1A</li>
      <li>Item 1B</li>
      <li>Item 1C</li>
    </ul>
  </li>
  <li>Item 2
    <ul>
      <li>Item 2A</li>
      <li class="active">Item 2B</li>
      <li>Item 2C</li>
    </ul>
  </li>
  <li>Item 3
    <ul>
      <li>Item 3A</li>
      <li>Item 3B</li>
      <li>Item 3C</li>
    </ul>
  </li>
</ul>

我需要的是:当我将鼠标悬停在 class="active" 的列表项上时,该特定项“Item 2B”及其父项“Item 2”将被涂成红色。 “项目 2A”和“项目 2C”不应着色。

我尝试了closest():

$("li").on("mouseenter", function () {
    if ($(this).hasClass("active")) {
        $(this).css("color", "red");
        $(this).closest("ul").closest("li").css("color", "red");
    }
});

还有parent().parent():

$(this).parent().parent().css("color", "red");

但当然,它们都为整个“Item 2”列表项(包括所有子项 2A、2B 和 2C)着色

最佳答案

您必须将每个父元素包装到某个 html 元素中,例如 div 或 span。

Solution

HTML

 <ul>
              <li>Item 1
                  <ul>
                  <li>Item 1A</li>
                  <li>Item 1B</li>
                  <li>Item 1C</li>
                  </ul>
              </li>
              <li><span>Item 2</span>  
                  <ul>
                      <li>Item 2A</li>
                      <li class="active">Item 2B</li>
                      <li>Item 2C</li>
                  </ul>
              </li>
              <li>Item 3
                  <ul>
                  <li>Item 3A</li>
                  <li>Item 3B</li>
                  <li>Item 3C</li>
                  </ul>              
              </li>
    </ul>

JS

$("li").on("mouseenter", function () {

        if ($(this).hasClass("active")) {

            $(this).css("color", "red");
            $(this).parent().parent().find("span").css("color", "red");
        }          
    }); 

关于javascript - 在 jQuery 的嵌套列表中选择没有子项的列表项父项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50965901/

相关文章:

javascript - 将垂直文本与上面的条对齐

javascript - 用图像而不是颜色填充 Canvas 区域

javascript - Vimeo 嵌入式视频自定义 Controller (全屏和音量控制)在 media element js 中不起作用

javascript - 当选择另一个框时,从选择框中删除 'disable' 属性

javascript - 单选按钮选中的属性未设置为 false

javascript - 同步执行从 .each() 返回的脚本,但不延迟完成顺序

javascript - 计算数组的一维差异

javascript - getJSON + reddit api——如何咬它?

Javascript 每三个空格拆分字符串

javascript - Bootstrap 网站在移动设备上没有响应