document.getElementsByClassName('myclass');
将返回与之匹配的元素数组。
您还可以使用类似以下的内容:
<body>
<div id="changethese">
<div class="myclass" onclick="change_class()">Some Text</div>
</div>
<div class="myclass">div two</div>
</body>
Javascript:
var changeTheseDivs = document.getElementById('changethese');
changeTheseDivs.getElementsByClassName('myclass')
仅更改所选div中的类。
但是,此方法的支持仅适用于IE9及更高版本,因此如果可以使用JQuery,则最好使用它。
编辑:
我认为我误读了,看起来您想要更改实际的CSS规则本身,而不是更改元素上的CSS。理论上,您可以编写一个函数,以便为您查找名称相同的规则并更改其属性。我猜它应该是这样的(未经测试,应该可以工作):
function findAndChangeCSSRule(ruleName, newRule, newProperty){
var mysheet=document.styleSheets[0];
var myrules=mysheet.cssRules? mysheet.cssRules: mysheet.rules
for (i=0; i<myrules.length; i++){
if(myrules[i].selectorText.toLowerCase()==ruleName){
targetrule=myrules[i];
break;
}
}
targetrule.style[newRule.toString()]=newProperty;
}
然后使用以下方式调用:
findAndChangeCSSRule('my_class', 'color', 'red')
$('.myclass').trigger()
吗? - StanquerySelectorAll()
是一个选项。 - Whymarrhdocument.getElementByClassName()
是另一种方式。 - Whymarrh