2012-07-12 75 views
16

例HTML一個DIV:類添加使用JavaScript

<div id="foo" class="class_one"></div> 

我怎樣才能添加類class_two無需更換class_one

最終結果是:

<div id="foo" class="class_one class_two"></div> 

回答

48

標準的JavaScript:

document.getElementById('foo').className += ' class_two' 

或JQuery的:

$('#foo').addClass('class_two'); 
+2

完美,謝謝隊友。 – jared 2012-07-12 04:27:07

17

您可以使用jQuery的。

$('#YourElement').addClass('YourClass'); //add 

$('#YourElement').removeClass('YourClass'); //remove 

$('#YourElement').toggleClass('YourClass'); //toggle 

或JavaScript,如果你想。

document.getElementById('id').classList.add('YourClass'); //add 
document.getElementById('id').classList.remove('YourClass'); //remove 
+2

這是相當整潔,我從來沒有見過它,是classList一個新的API? /與舊版瀏覽器兼容? – 2012-07-12 03:46:26

+0

我沒有在所有瀏覽器上檢查過它們,但它們可以在主要(最新)瀏覽器上運行。 – Lion 2012-07-12 03:49:32

+0

classList可在大多數現代瀏覽器上使用monhttp://caniuse.com/#feat=classlist – 2016-04-06 19:34:19

3

可以使生活更輕鬆與一對夫婦的輔助功能:

function addClass(el, className) { 
    var classes = el.className.match(/\S+/g) || []; 

    if (!hasClass(el, className)) { 
    classes.push(className); 
    } 
    el.className = classes.join(' '); 
} 

function hasClass(el, className) { 
    var re = new RegExp('(^|\\s+)' + className + '(\\s+|$)'); 
    return re.test(el.className); 
} 

addClass(document.getElementById('foo'), 'bar') 
7

檢查this添加類:

document.getElementById('foo').classList.add("class_two"); 

我覺得這是一個更好的解決方案。