用Javascript修改CSS
我可以通过如下简单代码使用Javascript更改项目的CSS ID:用Javascript修改CSS,javascript,html,css,lines,Javascript,Html,Css,Lines,我可以通过如下简单代码使用Javascript更改项目的CSS ID: <div id="teststyle1">Test Text, 1-1</div> <button type="button" onclick="document.getElementById('teststyle1').style.color='red'"> Test 1 </button> 测试文本,1-1 测试1 但是,当我尝试添加具有相同ID的第二行文本(如下面的
<div id="teststyle1">Test Text, 1-1</div>
<button type="button" onclick="document.getElementById('teststyle1').style.color='red'"> Test 1 </button>
测试文本,1-1
测试1
但是,当我尝试添加具有相同ID的第二行文本(如下面的完整示例)时,其中只有一行被更改。是否有一个简单的解决方案来解决这个问题,其中两个项目都将被更改
例如:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
#teststyle1{
text-decoration: underline;
}
</style>
</head>
<body>
<div id="teststyle1">Test Text, 1-1</div>
<div id="teststyle1">Test Text, 1-2</div>
<button type="button" onclick="document.getElementById('teststyle1').style.color='red'">Test 1</button>
</body>
</html>
#teststyle1{
文字装饰:下划线;
}
测试文本,1-1
测试文本,1-2
测试1
非常感谢您的帮助 ID应该是唯一的。您希望改用类
<div class="teststyle1">Test Text, 1-1</div>
<div class="teststyle1">Test Text, 1-2</div>
<button type="button" onclick="Array.prototype.forEach.call(document.getElementsByClassName('teststyle1'), function(element) { element.style.color='red'; })"> Test 1 </button>
测试文本,1-1
测试文本,1-2
测试1
尽管为了可读性和良好的风格,我还是建议:
<div class="teststyle1">Test Text, 1-1</div>
<div class="teststyle1">Test Text, 1-2</div>
<button id="my_button" type="button"> Test 1 </button>
<script>
document.getElementById('my_button').onclick = function() {
Array.prototype.forEach(document.getElementsByClassName('teststyle1'), function(element) {
element.style.color='red';
});
};
</script>
测试文本,1-1
测试文本,1-2
测试1
document.getElementById('my_button')。onclick=function(){
Array.prototype.forEach(document.getElementsByClassName('teststyle1'),函数(element){
element.style.color='red';
});
};
您不应该在不同的元素上使用ID。尝试使用类,然后javascript将更改类下的所有元素。id是唯一的。如果您想使用类,它总是首先应用匹配
<div class="class1">Test Text, 1-1</div>
<div class="class1">Test Text, 1-2</div>
ID应该是唯一的,也许可以采用使用类名的方法从IE9+开始工作实际上,不是内联更改样式,而是设置另一个类名,将所有样式放在一个位置会更干净,不应该,必须是唯一的。这非常基本。在启动JavaScript之前,您可能希望掌握CSS和HTML的诀窍。
NodeList
不继承数组原型,因此没有forEach
方法。您可以使用[].slice.call将其放入一个数组中。
$('.class1:eq(0)').html();
$('.class1:eq(1)').html();