Javascript - Ändern eines Klassenstils

9

Ich arbeite seit einiger Zeit mit jQuery, aber jetzt möchte ich etwas in reinem Javascript schreiben und es ist eine Herausforderung, herausfordernd zu sein .. Eines meiner größten Probleme im Moment ist, dass ich keine Möglichkeit gefunden habe, das Styling für eine Klasse zu ändern. Dies ist kein Problem für Elemente mit ID, aber ich möchte das Styling für eine Gruppe von Elementen mit der gleichen Klasse ändern und nicht nur für ein Element mit einer ID. In jQuery würde ich einfach schreiben:

%Vor%

Gibt es wirklich keine einfache Äquivalenz dazu in reinem js?

    
user1231410 24.02.2012, 18:34
quelle

5 Antworten

13

Versuchen Sie Folgendes

%Vor%

Hinweis: Wie Cheery darauf hingewiesen hat, funktioniert getElementsByClassName in IE nicht. Die verknüpfte Frage bietet eine gute Möglichkeit, diese Einschränkung zu umgehen

JaredPar 24.02.2012, 18:37
quelle
2
%Vor%

Um einen besseren Codierungsstil zu erhalten, fügen Sie den Elementen eine weitere Klasse mit dem obigen Code hinzu und verwenden Sie dann CSS, um die Farbe aller Elemente wie folgt zu ändern:

%Vor%     
Kefi 27.06.2017 15:25
quelle
1

Sie können die Selektor-Bibliothek verwenden, zum Beispiel Sizzle: Ссылка , aber wenn Sie reines JS wollen, denke ich, dass Sie daran festhalten, alle Elemente zu bekommen , und dann programmatisch "handpicking" diejenigen, die Klassen haben, die Sie daran interessiert sind RegEx wie dieses zum Beispiel zu verwenden:

Dies entspricht Ihrem JQuery oneliner:

%Vor%

:)

Wenn Sie es nicht in einer Zeile benötigen, können Sie es schneller machen ( und viel besser lesbar ):

%Vor%

Wenn " für (i in object) " nicht für Sie funktioniert, verwenden Sie einfach classic for loop " für (var i = 0; i & lt; elements.length; i ++ ) ".

Es könnte verschönert werden etwas mit der Verwendung einiger etwas fortgeschrittener JS-Konzepte ( array function mappings, falten und so ), welche JS-Version sind Sie Codierung gegen? Ich denke, es ist nicht ECMA Script 5, oder?

Sehen Sie sich auch diese Frage / Antwort an Erhalte alle Elemente in einem HTML-Dokument mit einer bestimmten CSS-Klasse

    
nana 24.02.2012 18:50
quelle
1

Was Sie ändern wollen, ist das Stylesheet, denke ich? Das ist in Javascript möglich, siehe

Ich fürchte, es gibt keine Bibliothek dafür, ich würde wirklich gerne einen sehen ...

    
Bergi 24.02.2012 19:53
quelle
0

Sie können verwenden:

%Vor%

Ändern Sie die Klasse des Elements und definieren Sie dann einfach den Stil für diese neue Klasse in Ihrer CSS-Datei

    
jmona789 02.03.2016 18:55
quelle

Tags und Links