javascript - 使用 JavaScript 一次更改具有相同类名的多个元素的样式?

标签 javascript html

我有一堆 div,每个 div 都有不同的类组合(例如“a A”、“a b”、“b A”、“b”等)。

按一下按钮,我需要更改所有具有类 A 的元素的样式(不仅是“A”,而且必须包含它。例如“d A”和“A”会工作)

我试过了

document.getElementsByClassName('a A').style.background = "#f00";

但是没有用。控制台显示它无法为元素“未定义”设置样式,所以我猜它无法通过 getElementsByClassName(); 获得我需要的东西。

最佳答案

getElementsBySomething(复数)的 DOM 方法,与 getElementBySomething 返回 NodeList 的方法相反,不是一个元素。 NodeList 是类似于数组的对象。

如果采用这种方法,则必须遍历它并依次更改每个元素。大多数图书馆都有快捷的方法来为你做这件事。

例如对于 YUI 3:

Y.all('.foo').setStyle('background', '#f00');

或jQuery

jQuery('.foo').css('background', '#f00');

另一种方法是修改 the stylesheet itself with JavaScript .

第三种选择是使用后代选择器提前设置更改后的样式,例如:

.foo { /* something */ }
body.bar .foo { /* something else */ }

然后

document.body.className += " bar";

激活替代样式。

关于javascript - 使用 JavaScript 一次更改具有相同类名的多个元素的样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7743849/

相关文章:

javascript - 谷歌地图像在maps.google.com中一样拖动

html - 空的 HTML href 导致在 IE 中列出目录

javascript - 将一个数组插入另一个数组 - 嵌套

c# - 服务器无法识别 HTTP header SOAPAction 的值

php - 如何处理 Javascript 中的换行符? (来自 PHP)

jquery - 关闭其内容上的滑动到顶部 Accordion

javascript - jQuery动画只能在CSS3中解决

javascript - Canvas SignaturePad 无法在 Mobile Phonegap 应用程序 (Android) 上清除

javascript - 我可以在JavaScript中的事件触发函数中获取html元素吗?

html - 语义用户界面 : Cards next to each other?