我有一个这样的列表:
<ul id="items"><li><a href="">Link</a></li><li><a href="">Link</a></li><li class="divider"></li><li><a href="">Link</a></li><li><a href="">Link</a></li></ul>
Run Code Online (Sandbox Code Playgroud)
当我点击任何锚点时,我想为所有li添加一个类,除了我点击的链接的父级和带有"divider"类的li.
我可以让它与所有兄弟姐妹一起工作:
$(this).parent().siblings().attr("class", "transparent");
Run Code Online (Sandbox Code Playgroud)
那么如何通过"divider"类忽略li呢?
非常感谢.
Ray*_*nos 17
您还可以使用该.not命令从您不想要的集合中过滤掉任何内容.这是传递:notMatt提到的CSS 伪类选择器的替代方法.
$(this).parent().siblings().not(".divider").addClass("transparent");
Run Code Online (Sandbox Code Playgroud)
也可以更好地使用.addClass和.removeClass
编辑:
jQuery很糟糕,使用DOM;)
link.addEventListener("click", function addClasses() {
var li = this.parentNode,
lis = li.parentNode.children;
[].forEach.call(lis, function addClassIfCorrect(el) {
var classList = el.classList
if (el !== li && !classList.contains("divider")) {
classList.add("transparent");
}
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10977 次 |
| 最近记录: |