admin管理员组文章数量:1296246
<body>
<div id="foo"></div>
<button onclick ="addClass(el,'Test') ">click</button>
</body>
<script>
function addClass(element, myClass) {
element.className = myClass;
}
var el = document.getElementById('foo');
</script>
I would like to add more more classes without the previous class being removed.
<body>
<div id="foo"></div>
<button onclick ="addClass(el,'Test') ">click</button>
</body>
<script>
function addClass(element, myClass) {
element.className = myClass;
}
var el = document.getElementById('foo');
</script>
I would like to add more more classes without the previous class being removed.
Share Improve this question edited May 25, 2013 at 7:47 steveax 17.7k6 gold badges46 silver badges59 bronze badges asked May 25, 2013 at 5:24 Richard BustosRichard Bustos 351 silver badge4 bronze badges2 Answers
Reset to default 4Working FIDDLE Demo
Try this:
function addClass(element, myClass) {
element.className += ' ' + myClass;
}
var foo = document.getElementById('foo');
addClass(foo, 'a');
addClass(foo, 'b');
CSS classes are space delimited in the attribute, so:
function addClass(element, myClass){
element.className += ' '+myClass;
}
Or, for modern browsers, use classList
API:
function addClass(element, myClass){
element.classList.add(myClass);
}
…which you can even polyfill for older browsers.
If you are not using classList
and wanted to ensure that your class
attribute has only one instance of a given class in the string, you can remove it first (totally unnecessary but for OCD):
var re = new RegExp( "(?:^|\\s)"+myClass+"(?:\\s|$)", 'g' );
el.className = el.className.replace(re, '');
本文标签: htmlAdding CSS classes to an element using JavaScriptStack Overflow
版权声明:本文标题:html - Adding CSS classes to an element using JavaScript - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741620233a2388766.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论