Ich versuche, "enthält" Groß- und Kleinschreibung unempfindlich zu verwenden. Ich habe versucht, die Lösung bei der folgenden Frage zum Stapelüberlauf zu verwenden, aber es hat nicht funktioniert:
Gibt es eine Groß- und Kleinschreibung ohne Berücksichtigung von jQuery: enthält Selektor?
Der Einfachheit halber wird die Lösung hier kopiert:
jQuery.extend(
jQuery.expr[':'], {
Contains : "jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0"
});
Hier ist der Fehler:
Error: q is not a function
Source File: /js/jquery-1.4.js?ver=1.4
Line: 81
Hier ist, wo ich es benutze:
$('input.preset').keyup(function() {
$(this).next().find("li").removeClass("bold");
var theMatch = $(this).val();
if (theMatch.length > 1){
theMatch = "li:Contains('" + theMatch + "')";
$(this).next().find(theMatch).addClass("bold");
}
});
Meine Verwendung der ursprünglichen Groß- und Kleinschreibung "enthält" im selben Szenario funktioniert ohne Fehler. Hat jemand irgendwelche Ideen? Das würde ich gut finden.
:containsExact
, enthält Selektoren:containsExactCase
und:containsRegex
Selektoren, die jetzt in allen Versionen von jQuery funktionieren.Antworten:
Dies ist, was ich in einem aktuellen Projekt verwende, hatte keine Probleme. Sehen Sie, ob Sie mit diesem Format mehr Glück haben:
In jQuery 1.8 wurde die API dafür geändert. Die jQuery 1.8+ Version davon wäre:
Sie können es hier testen . Weitere Informationen zu mehr als 1.8 benutzerdefinierten Selektoren finden Sie im Sizzle-Wiki hier .
quelle
icontains
werden oder ähnliches.Es ist erwähnenswert, dass die Antwort korrekt ist, aber nur
:Contains
den Alias abdeckt , der:contains
zu unerwartetem Verhalten führen kann (oder vom Design für erweiterte Anwendungen verwendet werden kann, die sowohl eine vertrauliche als auch eine unempfindliche Suche erfordern).Dies könnte durch Duplizieren der Erweiterung für den Alias behoben werden:
Ich habe eine Weile gebraucht, um herauszufinden, warum es bei mir nicht funktioniert hat.
quelle
:contains
. Ich denke, es ist klarer, das Original in:contains
Ruhe zu lassen und Ihren neuen Selektor anzurufen:icontains
.Ich würde so etwas tun
Und in Ruhe lassen
:contains
...DEMO
Warum unterstützt jQuery es in seiner Bibliothek nicht?! wenn es so einfach ist ...
weil Ihr Code den Truthahncode übergibt?
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
Ich erlaube mir, meine Freunde hinzuzufügen:
quelle
Ich konnte die Groß- und Kleinschreibung von jQuery einfach ignorieren, um mit dem folgenden Code das zu erreichen, was ich möchte:
Über diesen Link können Sie Code finden, der auf Ihren jQuery-Versionen basiert, um die Groß- und Kleinschreibung zu ignorieren. Https://css-tricks.com/snippets/jquery/make-jquery-contains-case-insensitive/
Auch wenn Sie verwenden möchten: enthält und eine Suche durchführen möchten, sollten Sie sich Folgendes ansehen: http://technarco.com/jquery/using-jquery-search-html-text-and-show-or-hide- entsprechend
quelle