Ich suche nach einer Methode zum Filtern des Rückgabearrays der jQuery-Auswahl.
Nehmen wir an, ich habe das Array von Elementen, das von jQuery zurückgegeben wird:
window.elementSet = $("element");
Nun möchte ich dieses Array filtern, um nur Elemente mit der Klasse "car" anzuzeigen. ohne Neugestaltung des Selektors, so
window.elementSetOfCars = $("element.car");
Da der zurückgegebene Wert ein Array von Elementen ist, können wir einfach .filter oder .grep oder eine einfache for / while-Schleife verwenden, um die Klassen jedes Elements mit .hasClass () oder attr ("class") zu überprüfen. , oder Wasauchimmer.
Was ist die schnellste Methode dafür?
Antworten:
2 für die Antwort № 1Sie könnten Folgendes tun:
var elementSetOf = window.elementSet.filter(function(val,i,arr){
return (val.className.indexOf("car") >= 0);
});
Bedenken Sie jedoch, dass das Ergebnis von $ (selector) eigentlich kein Array ist, sondern ein "Array-ähnliches" Objekt, was bedeutet, dass viele Array-Methoden und -Eigenschaften funktionieren, aber nicht alle. Mehr Infos hier