[英]How to change className using javascript?
码
window.onload = function() { var refButton = document.getElementById("old"); refButton.onmouseover = function() { refButton.className = 'newClass'; } };
.newClass { color: white; } #old { color: blue; }
<div id="old"> Hello </div>
如果我不是输入ClassName
而是输入style.color="red"
那么代码将起作用。
我想知道是什么问题。
这是因为CSS的特殊性 ,所以只需在#old
中添加.newClass
.newClass
的特异性为: 0 0 1 0
#old
的特异性为: 0 1 0 0
因此#old
更具体。
使用#old.newClass
您将获得0 1 1 0
,它将更加具体,并将应用您想要的新样式。
您可以在此处计算CSS特异性
window.onload = function() { var refButton = document.getElementById("old"); refButton.onmouseover = function() { refButton.className = 'newClass'; } };
#old.newClass { color: red; /* changed for demo */ } #old { color: blue; }
<div id="old"> Hello </div>
如果您尝试使用鼠标悬停效果,则可以通过将'newClass'替换为
#old:hover{color:white;}
就像adeneo的评论链接说的那样,
#old{color:blue;} //id selector
优先级高于
.newClass{color:white;} //class selector
这就是为什么作业不起作用的原因
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.