2012-07-12 3 views
16

예 HTML과 DIV에 클래스를 추가자바 스크립트

가 어떻게 class_one를 교체하지 않고 클래스 class_two을 추가 할 수 있습니다

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

최종 결과 :

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

답변

48

표준 자바 스크립트 :

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

또는 JQuery와 :

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

완벽합니다. 감사합니다. – jared

17

당신은 jQuery를 사용할 수 있습니다.

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

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

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

또는 자바 스크립트, 원하는 경우.

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

그게 아주 깔끔하고, 나는 그것을 본 적이 한번도 없다, 클래스는 새로운 API를 나열합니까?/구형 브라우저와 호환됩니까? –

+0

나는 모든 브라우저에서 그것들을 검사하지는 않았지만 그들은 주요 (최신) 브라우저에서 작업 할 수있다. – Lion

+0

classList는 대부분의 최신 브라우저 monhttp : //caniuse.com/#feat=classlist에서 사용할 수 있습니다. –

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"); 

나는 이것이 더 나은 솔루션입니다 생각합니다.