0

classNameJavaScript で属性を設定するための既知のワンライナーはありますか? つまり、すでにいくつかのクラス (-es) が定義されているかどうかを心配する必要はありません。

私が考えることができる最短は、

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

className現在が定義されていない場合、これは死ぬことはありませんが、末尾にスペースが残ります。それは現在のブラウザにとって問題になるでしょうか?

4

2 に答える 2

1

You might want to first check if there is already a class with the name you are adding, or just move it to the end of the class list if it is found.

This function works in most browsers without any polly filling:

function addClass(element, c){
    var c1= element.className.replace(RegExp('\\s*'+c+'\\b\\s*'), '');
    element.className= c1? c1+' '+c:c;
}
于 2013-05-20T21:05:40.440 に答える
1
document.getElementById('demo').classList.add('newclass');

この API の詳細については、Mozilla Development Network で読むことができます: https://developer.mozilla.org/en-US/docs/Web/API/element.classList

10 より前のバージョンの Internet Explorer はまだサポートされていませんが、上記のページでポリフィルが提供されていることに注意してください。

于 2013-05-20T19:03:56.730 に答える