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

新手上路,请多包涵

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

例如,我有这个列表:

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

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

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

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

原文由 Jaeeun Lee 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 634
2 个回答

这将选择第二个 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>

原文由 Nick Grealy 发布,翻译遵循 CC BY-SA 4.0 许可协议

要选择 <li> 没有 completed 也没有 selected 类:

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

小提琴

http://jsfiddle.net/Z8djF/

原文由 BeNdErR 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题