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 badges
Add a ment  | 

2 Answers 2

Reset to default 4

Working 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