javascript - 根据选定的李显示相关李

标签 javascript jquery html-lists show-hide

我有一个列表:

<ul class="products">
  <li class="products p1">first</li>
  <li class="description p1">first</li>
  <li class="products p2">second</li>
  <li class="description p2">second</li>
  <li class="products p3">third</li>
  <li class="description p3">third</li>
  <li class="products p4">fourth</li>
  <li class="description p4">fourth</li>
</ul>  

我想使用 jquery 来:
1-当用户点击除所点击的li之外的li时,隐藏其他li。
2-当用户再次单击事件 li 时显示所有 li。
我使用了下面的脚本:

$(window).load(function(){
$(".products li").click(function(){
     if ($(this).hasClass("active")) {
          $(".products li").show("slow");
          $(this).removeClass("active");
     } else {
          $(this).addClass("active");
          $(".products li:not(.active)").hide("slow");
     }
});
});  

效果很好。
现在我想显示事件 li 的相关描述 li。
例如,如果事件 li 是 class:p2 的 li,则需要显示以下描述 li,而其他 li 则隐藏:

  <li class="description p2">second</li>  

描述 li 隐藏在开头。
我不知道如何根据类名选择正确的li。应该有一个 jQuery 技巧来通过类名和掩码选择 li !

最佳答案

.active 类添加到下一个 li ($(this).next().addClass("active");),并且还将选择器更改为 li.products,因为所有 li 都是可点击的:

$(window).load(function(){
    $(".products li.products").click(function(){
         if ($(this).hasClass("active")) {
              $(".products li").show("slow");
              $(this).removeClass("active");
              $(this).next().removeClass("active");
         } else {
              $(this).addClass("active");
              $(this).next().addClass("active");
              $(".products li:not(.active)").hide("slow");
         }
    });
}); ​​

JSFiddle Example

关于javascript - 根据选定的李显示相关李,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12318295/

相关文章:

javascript - 在用户脚本中捕获按键事件并将其隐藏在网站上

javascript - react 错误 - ./src/App.js 第 16 行 : Parsing error: Unexpected token

javascript - 通过单击另一个表中的单元格删除表中的列

php - 是否可以关闭 </ul> 并在循环中添加新的 <ul> ?

html - 在 HTML/CSS 中创建菜单

javascript - 如何在iOS6中关闭选择器onchange事件的下拉菜单?

javascript - 如何在 javascript 中迭代 xml 元素的直接子元素,保存特定属性的值?

javascript - 用鼠标移动打开选择选项

javascript - 如何使用Animated-Multi-level-jQuery-Dropdown-Plugin没有错误?

html - 在定义的级别后隐藏第 n 个嵌套的 UL