2016-04-23 11 views
-1

Ich versuche, alle <a> Elemente in einer HTML-Seite auszuwählen und dann eine Klasse zu jedem von ihnen hinzuzufügen. Führen Sie später eine Funktion aus, die dieselbe Klasse aus jedem der Elemente <a> entfernt.Warum funktionieren querySelectorAll() und getElementsByTagName() nicht?

Ich habe versucht, es mit querySelectorAll zu tun():

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

Und mit getElementsByTagName():

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

Aber weder Werke. Ich arbeite bereits mit jQuery, brauche also keine Antwort. Ich würde nur versuchen, die Leistung von JavaScript im Vergleich zu jQuery in dieser Situation zu vergleichen und mehr JavaScript in JavaScript zu lernen, während ich dabei bin.

Ich habe auch versucht, die Klasse zu entfernen, wie so:

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

Und:

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

Aber keiner von denjenigen abweichen, Arbeit. Jede Hilfe würde sehr geschätzt werden.

+2

Beide Rückgabeliste, verwenden Sie eine einfache Schleife – Satpal

Antwort

1

document.querySelectorAll gibt eine Liste zurück, so dass Sie es durchlaufen müssen. Beispiel:

var links = document.querySelectorAll('a'); 
for(var i = 0; i < links.length; i++){ 
    links[i].className = 'class1'; 
} 
Verwandte Themen