Wir wissen, dass der native JS uns die GetElements -By -ClassName -Methode liefert, die eine Sammlung von Knoten mit einer bestimmten Klasse über diese Methode erhalten kann. Beachten Sie, dass es sich um eine Sammlung handelt, dh diese Funktion gibt ein Array zurück.
IE unterstützt diese Methode jedoch nicht, aber diese Methode ist sehr praktisch, daher müssen wir eine solche Funktion speziell für den IE implementieren.
Die Codekopie lautet wie folgt:
Funktion getElements byclassName (oele, sclass, sele) {
if (Oele.getElementsByClassName) {
return oele.getElementsByClassName (sclass);
}anders{
var aele = oele.getElementsByTagName (sele || '*'),
reg = neuer regexp ('(^| // s)'+sclass+'($ | // s)'),
arr = [],
i = 0,
ilen = aele.length;
für (; i <ilen; i ++) {
if (reg.test (aele [i] .className)) {
arr.push (aele [i]);
}
}
arr zurückgeben;
}
}
Wie man verwendet:
Die Codekopie lautet wie folgt:
// Der erste Typ: Wählen Sie die gesamte Klasse unter dem Dokument als Divelemente von box_box aus
GetElementsByClassName (Dokument, 'box_box', 'div') [0] .Style.background = 'gelb';
// Der zweite Typ: Wählen Sie die gesamte Klasse unter dem Dokument als Divelemente der Box-Box aus
GetElementsByClassName (Dokument, 'Box-Box', 'Div') [0] .Style.background = 'gelb';
// Der dritte Typ: Wählen Sie alle Klassen im Dokument als Box-Box-Elemente aus
GetElementsByClassName (Dokument, 'Box-Box') [0] .Style.Background = 'Yellow';
Oele und Sclass sind erforderlich, Sele ist optional.
Es gibt kein Problem mit der horizontalen Linie oder der Unterstriche in Sclass, wie z. B. Box-Box Box_Box; Aber wenn es sich um andere Sonderzeichen handelt, ist es sehr wahrscheinlich, dass es Probleme gibt, wie z. B. Box $ Box ... Natürlich können Sie Flucht hinzufügen, um Sonderzeichen selbst zu erhalten, wie z. B. Box // $ Box ...
Kompatibilität: Testen Sie IE6+
Freunde, Sie werden es wissen, nachdem Sie es selbst benutzt haben. Es ist super einfach zu bedienen. Lassen Sie es uns an andere Freunde weitergeben.