6

在下面的简单 HTML 中,我想使用 class1 而不是使用 class2 获取所有元素

<li class="class1 class2"></li>
<li class="class1 class3"></li>
<li class="class1 class4"></li>

通过使用getElementsByClassName('class1'),我们可以获取所有元素,然后通过检查某个类是否存在来删除元素。

有没有更好的方法来做到这一点,而无需迭代?

我发现这篇关于获取具有多个类的元素的有趣帖子,所以我敢问:有没有这样的东西:document.getElementsByClassName("class1 !class2")

PS:我不想使用 jQuery。

4

2 回答 2

15

如果您不介意使用越来越兼容 .querySelectorAll()的版本,只需:

  var getClassOne = document.querySelectorAll( '.class1:not(.class2)' );

小提琴:http: //jsfiddle.net/5tSGv/52/

虽然没有它,但您必须以某种方式迭代 className

于 2013-10-21T11:04:43.407 回答
1

querySelectorAll()返回一个静态(非实时)NodeList,表示与指定选择器组匹配的文档元素列表。

因此,如果页面没有动态生成 div,您可以使用querySelectorAll().

于 2020-08-23T18:06:32.447 回答