Gibt es eine Version des : enthält jQuery-Selektors, bei der die Groß- und Kleinschreibung nicht berücksichtigt wird, oder sollte ich die Arbeit manuell ausführen, indem ich alle Elemente durchlaufe und deren .text () mit meiner Zeichenfolge vergleiche?
javascript
jquery
jquery-selectors
Klopfen
quelle
quelle
Antworten:
Was ich letztendlich für jQuery 1.2 gemacht habe, ist:
Dadurch wird die Abfrage erweitert, um einen: Enthält einen Selektor, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird. Der: enthält-Selektor bleibt unverändert.
Bearbeiten: Für jQuery 1.3 (danke @ user95227) und später benötigen Sie
Bearbeiten: Anscheinend direkt mit auf das DOM zugreifen
anstatt
Im vorherigen Ausdruck wird es erheblich beschleunigt. Versuchen Sie es also auf eigenes Risiko, wenn Geschwindigkeit ein Problem darstellt. (siehe @ John ‚s Frage )
Letzte Änderung: Für jQuery 1.8 sollte es sein:
quelle
Um es optional ohne Berücksichtigung der Groß- und Kleinschreibung zu machen: http://bugs.jquery.com/ticket/278
dann
:containsi
anstelle von verwenden:contains
quelle
Ab jQuery 1.3 ist diese Methode veraltet. Damit dies funktioniert, muss es als Funktion definiert werden:
quelle
Wenn jemand (wie ich) interessiert ist, was bedeuten a und m [3] in der Definition von Enthält .
KEY / LEGEND: Von jQuery zur Verwendung in den Selektordefinitionen bereitgestellte Parameter:
r = jQuery-Array von Elementen, die geprüft werden. (zB: r.length = Anzahl der Elemente)
i = Index des aktuell untersuchten Elements innerhalb des Arrays r .
a = Element, das derzeit geprüft wird. Die Selector-Anweisung muss true zurückgeben, um sie in die übereinstimmenden Ergebnisse aufzunehmen.
m [2] = Knotenname oder *, nach dem wir suchen (links vom Doppelpunkt).
m [3] = Parameter übergeben an:: Selektor (Parameter). In der Regel eine Indexnummer wie in : n-ter Typ (5) oder eine Zeichenfolge wie in : Farbe (blau) .
quelle
In jQuery 1.8 müssen Sie verwenden
quelle
Eine Variation, die etwas schneller zu funktionieren scheint und auch reguläre Ausdrücke zulässt, ist:
Dies unterscheidet nicht nur die Groß- und Kleinschreibung nicht, sondern ermöglicht auch leistungsstarke Suchvorgänge wie:
$("p:containsCI('\\bup\\b')")
(Entspricht "Up" oder "Up", aber nicht "Upper", "Wakeup" usw.)$("p:containsCI('(?:Red|Blue) state')")
(Entspricht "roter Zustand" oder "blauer Zustand", jedoch nicht "Aufwärtszustand" usw.)$("p:containsCI('^\\s*Stocks?')")
(Entspricht "Aktie" oder "Aktien", jedoch nur am Anfang des Absatzes (wobei führende Leerzeichen ignoriert werden).)quelle
Kann zu spät sein ... aber,
Ich würde lieber diesen Weg gehen ..
Auf diese Weise manipulieren Sie NICHT jQuerys NATIVE '.contains' ... Möglicherweise benötigen Sie später die Standardeinstellung ... Wenn Sie manipuliert werden, befinden Sie sich möglicherweise wieder bei stackOverFlow ...
quelle
Der Update-Code funktioniert in 1.3 hervorragend, aber "enthält" sollte im Gegensatz zum vorherigen Beispiel beim ersten Buchstaben in Kleinbuchstaben geschrieben werden.
quelle
:contains
und:Contains
beide gleichzeitig arbeiten.Siehe unten, um ": enthält" zu verwenden, um Text zu finden, der die Groß- und Kleinschreibung aus einem HTML-Code ignoriert.
Sie können diesen Link auch verwenden, um Code zu finden, bei dem Groß- und Kleinschreibung ignoriert wird, basierend auf Ihrer jquery-Version. Make jQuery: enthält Groß- und Kleinschreibung wird nicht berücksichtigt
quelle
Eine schnellere Version mit regulären Ausdrücken.
quelle
Ich hatte ein ähnliches Problem mit dem folgenden nicht funktioniert ...
Dies funktioniert und ohne die Notwendigkeit einer Erweiterung
Dies funktioniert auch, fällt aber wahrscheinlich in die Kategorie "Manuelles Looping" ....
quelle
Neu eine Variable Ich gebe ihr den Namen subString und füge einen String, den du suchen möchtest, in einen Elementtext ein. Wählen Sie dann mit dem Jquery-Selektor Elemente aus, die Sie wie in meinem Beispiel benötigen,
$("elementsYouNeed")
und filtern Sie nach.filter()
. Im.filter()
wird jedes Element$("elementsYouNeed")
mit der Funktion verglichen .In der Funktion i, die
.toLowerCase()
für Elementtext verwendet wird, wird auch ein SubString verwendet, bei dem zwischen Groß- und Kleinschreibung unterschieden werden kann, und es wird geprüft, ob ein SubString darin enthalten ist. Danach erstellt die.filter()
Methode ein neues jQuery-Objekt aus einer Teilmenge der übereinstimmenden Elemente.Jetzt können Sie die Match-Elemente in matchObjects abrufen und tun, was Sie wollen.
quelle