2016-04-23 12 views
-1

私はすべての<a>要素をHTMLページで選択し、それぞれにクラスを追加しようとしています。その後、この同じクラスをそれぞれの要素から取り除く関数を実行してください。querySelectorAll()およびgetElementsByTagName()が機能しないのはなぜですか?

は私がquerySelectorAll()でそれを行うことを試みた:

document.querySelectorAll('a').className += ' class1'; 

とgetElementsByTagNameの()と

document.getElementsByTagName('a').className += ' class1'; 

しかし、どちらの作品。私はすでにjQueryでこれを扱っていますので、その答えは必要ありません。私はこの状況でJa​​vaScript対jQueryのパフォーマンスを比較し、私がそれにいる間、より多くのバニラJavaScriptを学びたいと考えています。

また、私はそうのようなクラスを削除しようとしました:どちらか

document.getElementsByTagName("a").className = 
document.getElementsByTagName("a").className.replace 
    (/(?:^|\s)class1(?!\S)/g , ''); 

しかし、これらの作業のどちら:

document.querySelectorAll("a").className = 
    document.querySelectorAll("a").className.replace 
    (/(?:^|\s)class1(?!\S)/g , '') 

と。どんな助けでも大歓迎です。

+2

これらは両方ともリストを返します。単純なループを使用してください。 – Satpal

答えて

2

Document.querySelectorAllはリストを返します。リスト要素を反復処理する必要があります

+0

皆様に大変感謝しています! –

1

document.querySelectorAllはリストを返すので、ループする必要があります。例:

var links = document.querySelectorAll('a'); 
for(var i = 0; i < links.length; i++){ 
    links[i].className = 'class1'; 
} 
関連する問題