如何选择没有特定类的元素

IT技术 javascript html class
2021-02-15 05:51:56

我想知道如何使用 JavaScript 而不是 jQuery 选择没有特定类的元素。

例如,我有这个列表:

<ul id="tasks">
  <li class="completed selected">One Task</li>
  <li>Two Task</li>
</ul>

我通过以下方式选择已完成的任务:

var completeTask = document.querySelector("li.completed.selected");

但是我不确定如何选择没有这些类的列表项。

6个回答

这将选择第二个LI元素。

document.querySelector("li:not([class])")

或者

document.querySelector("li:not(.completed):not(.selected)")

例子:

// select li which doesn't have a 'class' attribute...
console.log(document.querySelector("li:not([class])"))

// select li which doesn't have a '.completed' and a '.selected' class...
console.log(document.querySelector("li:not(.completed):not(.selected)"))
 <ul id="tasks">
    <li class="completed selected">One Task</li>
    <li>Two Task</li>
  </ul>

要选择<li>没有completedselected类的:

document.querySelector("li:not(.completed):not(.selected)");

小提琴

http://jsfiddle.net/Z8djF/

如何做相反的事情:即选择所有具有completedselected类的元素
2021-04-15 05:51:56
@user2284570 只编写没有空格的两个类:li.completed.selected-> 这将匹配所有li具有completedANDselected类的元素
2021-05-02 05:51:56

你可以试试:not()选择器

var completeTask = document.querySelector("li:not(.completed):not(.selected)");

http://jsfiddle.net/UM3j5/

document.querySelectorAll('[wf-body=details] input:not(.switch):not(.btn)').forEach(function(e){
    // do whatever you want. with 'e' as element :P
});

尝试获取父母的孩子的数组:

var completeTask = document.querySelector("#tasks").childNodes;

然后根据需要循环/搜索它们。