我的文档中有大约100个<span class="foo">
,100个<span class="bar">
和100个<span class="baz">
标记。我需要在JavaScript中实现以下操作:
我会将这些操作完全调用大约1000次,因此我想避免使用每次执行操作时向<style>
添加<head>
标记的解决方案。
是否有比使用<span>
迭代所有document.getElementsByTagName('span')
元素更简单,更快或更好的内容,以及更改或附加每个元素的.className
DOM属性?
答案 0 :(得分:9)
最简单的方法是使用CSS来执行此操作,而不是更改元素类名。考虑以下标记和CSS。
.normal .foo{
background-color: #0f0;
}
.alternate .foo {
background-color: #f00;
}
<body class="normal">
<span class="foo">hello</span>
<span class="bar">hello</span>
<span class="baz">hello</span>
</body>
您可以简单地使用javascript将正文上的类名从正常更改为替换,以在.foo元素上实现颜色更改。更多规则将为bar和baz设置颜色。
document.getElementsByTagName('body')[0].className = 'alternate';
答案 1 :(得分:2)
您可以为文档正文提供一个类来确定应该使用哪种颜色配置,然后相应地设置跨度样式。
例如:
.configTypeOne span.foo{...}
.configTypeTwo span.foo{...}
如果你在一段时间之后改变同一页面上的样式,那么改变身体类别的一小部分JS将是所有必需的。