2017-12-08 12 views
0

私はすべての要素に同時にhtml domを使ってaddclassを追加しようとしています。ここでは//ませjqueryのHtml domはすべての要素にクラスを追加します

は私がしようと試みたものですん:

document.getElementsByTagName("*").classList.add('addedclassname'); 

私はすべての要素を選択します(取得)ことができませんでしたね。これにより、

document.getElementById("id").classList.add('addedclassname'); 

が機能していました。

+0

'document.getElementByTagName( "*")'あなたはループスルーにするとしている... classList'は単一 'Element'の財産である'要素のコレクションを返しますが、すべての要素..私は 'getElementsById'はOPでの記述がtypoであると感じています.. – Rayon

+0

' [] .forEach.call(document.getElementsByTagName( "*")、function(el){ el.classList.add( 'addedclassname' ); }); 'うまくいくはずです... – Rayon

+0

これを一度にどのように行うことができますか? – Tuvshintsenguun

答えて

0

あなたはあなたがそれらを繰り返す必要があり、この

var els = document.getElementsByTagName("*"); 
    for(var i = 0, all = els.length; i < all; i++){ 
     els[i].classList.add('addedclassname'); 
    } 
+0

これを行う方法はありませんループなし? – Tuvshintsenguun

+0

私は考えていない... beceause getElementsByTagNameは、各タグを含むHTMLCollectionオブジェクトを返します。したがって、各要素をループしてクラスを適用する必要があります。 – Goms

0

のように各要素を反復処理する必要があります。

var elementList = document.getElementsByTagName("*"); 
for(var i = 0; i < elementList.length; i++) 
{ 
    elementList[i].classList.add('addedclassname'); 
} 
0

function addClass(){ 
 
document.getElementsByTagName("*")[0].setAttribute("class", "demo") 
 
}
.demo { 
 
    color: red; 
 
}
<h1>this is h1 element</h1> 
 
<p>hello this is p element</p> 
 
<h2>this is h2 element</h2> 
 
<button onclick='addClass()'>add class</button>

関連する問題