2013-05-20 69 views
0

是否有知道在JavaScript中設置className屬性的單行程?我的意思是,如果已經定義了某些類(-es),則不必擔心。設置className的快捷方式

我能想到的最短的,是

var objDemo = document.getElementById("demo"); 
objDemo.className = "newclass " + (objDemo.className || ""); 

如果當前className不確定這會不會死,但它讓我後面有個空格。這對目前的瀏覽器來說會是一個問題嗎?

回答

1
document.getElementById('demo').classList.add('newclass'); 

你可以閱讀更多有關Mozilla的開發網絡這個API:https://developer.mozilla.org/en-US/docs/Web/API/element.classList

注意,10之前的Internet Explorer版本還不支持,但填充工具是上面提到的網頁上給出。

+0

謝謝,甚至從未聽說過這個新屬性的! – naivists

+0

請注意,您需要確保所有目標瀏覽器均支持此功能。 http://caniuse.com/#feat=classlist – epascarello

+0

從IE10(http://caniuse.com/classlist)開始支持,所以目前所有的瀏覽器都可以,即使IE9支持也不錯。 – naivists

1

你可能想先檢查是否有已經與要添加, 或者只是將其移動到班級列表的末尾,如果發現該名稱的類。

此功能在大多數瀏覽器工作沒有任何波利填充:

function addClass(element, c){ 
    var c1= element.className.replace(RegExp('\\s*'+c+'\\b\\s*'), ''); 
    element.className= c1? c1+' '+c:c; 
}