0

getElementsByClassName您可以通过将它们放在空格分隔的字符串中来一次搜索多个类的状态规范。

https://developer.mozilla.org/en-US/docs/Web/API/document.getElementsByClassName

/* From MDN */
elements = document.getElementsByClassName(names); // or:
elements = rootElement.getElementsByClassName(names);
  • elements 是找到的元素的 HTMLCollection。
  • names 是一个字符串,表示要匹配的类名列表;类名由空格分隔
  • getElementsByClassName 可以在任何元素上调用,而不仅仅是在文档上。调用它的元素将用作搜索的根。

但是在 Chrome 上尝试这个结果为零!有没有人能够让它在 Chrome 中工作?它只是 Chrome 还是 WebKit?

4

1 回答 1

4

你错过了理解它不是一个或。它是一个 AND。

elements = document.getElementsByClassName("foo bar");

它说元素需要同时具有 classfoobar.

<div class="foo">Not Selected</div>
<div class="bar">Not Selected</div>
<div class="foo bar">Selected</div>

变量元素只会找到上述集合中的最后一个元素。

在 JSFiddle 上运行示例

如果你想做一个或,你可以quersySelectorAll()在现代浏览器上使用

var elements = document.querySelectorAll(".foo, .bar");

JSFiddle 示例

于 2013-06-25T17:28:11.083 回答