jquery, um alle exakten td-Übereinstimmungen zu finden

8
%Vor%

das findet nur 1 (zuerst denke ich) Übereinstimmung, wie man alle Übereinstimmungen findet. übrigens. td: contains funktioniert nicht für mich.

    
ra170 28.05.2009, 16:45
quelle

5 Antworten

14

eq erwartet, dass ein numerischer Index nur eine einzelne Zeile zurückgibt. Wenn Sie eine TD mit ihrem Inhalt abgleichen möchten, müssen Sie den : Selektor verwenden. Zu sagen, dass es nicht funktioniert, und es wegzuwerfen, ist nicht die richtige Herangehensweise an das Problem, da der Selektor (höchstwahrscheinlich) nicht daran schuld ist (Beachten Sie die Groß- und Kleinschreibung, das könnte es sein ...)

Jedenfalls, wenn Sie einen Tisch wie diesen haben:

%Vor%

Dieser jQuery-Code:

%Vor%

Schaltet alle Zellen mit "Hello" auf rot. Demo .

Wenn Sie eine Übereinstimmung ohne Berücksichtigung der Groß- / Kleinschreibung benötigen, können Sie dies mithilfe der Funktion filter tun:

%Vor%

Wenn Sie den exakten Inhalt der Zelle anpassen müssen, könnten Sie etwas ähnliches wie oben verwenden:

%Vor%

Bei der obigen Angabe wird die Groß- / Kleinschreibung nicht berücksichtigt (indem Sie sowohl die Suche als auch den Inhalt beim Vergleich in Kleinbuchstaben umwandeln). Andernfalls können Sie diese nur entfernen, wenn Sie die Groß- / Kleinschreibung beachten möchten. Demo .

    
Paolo Bergantino 28.05.2009, 17:43
quelle
2

Ich könnte mich irren, aber der : eq-Positionsselektor nimmt eine ganze Zahl n ein findet das nth passende Element.

Wenn Sie also td: eq (1) sagen, erhalten Sie das zweite TD-Element in der Tabelle (zweitens, weil der erste Index null / 0 ist).

Ich schätze, dass Sie den : enthält Selektor nicht verwenden möchten, weil Sie nach einem genauen suchen string match und möchte keine Teilübereinstimmungen.

Ich bin mir nicht bewusst, dass jquery einen eingebauten Selektor hat, der Ihren Bedürfnissen entspricht (wenn ja, bitte korrigieren Sie mich). Sie können einen als Erweiterung hinzufügen oder eine andere Methode verwenden, z. B. einen Attributselektor, um die Suche nach Ihnen durchzuführen.

Wenn Sie in der Lage sind, den generierten HTML-Code zu steuern, können Sie jedem TD ein ID-Attribut hinzufügen:

%Vor%

Der folgende Attributselektor würde den richtigen TD in der Tabelle finden:

%Vor%

Wenn Sie stattdessen die gesamte Zeile mit dem gesuchten TD auswählen möchten, können Sie weitere Selektoren hinzufügen:

%Vor%

Das tbody-Tag ist nicht vollständig notwendig, es hilft nur, zwischen Zeilen im Tabellenkörper und Zeilen im Tabellenkopf zu unterscheiden.

    
GuyIncognito 28.05.2009 17:38
quelle
1

Versuchen Sie: containsExact

Ссылка

%Vor%     
Shane 09.05.2011 17:15
quelle
0
%Vor%

findet alle td-Elemente, aber es ist nicht ganz klar, was Sie erwarten.

    
Philippe Leybaert 28.05.2009 16:47
quelle
0

Ich bin auch auf dasselbe Problem gestoßen wie der ursprüngliche Autor. Wie Paulo der ursprüngliche Frage poser hatte. Welcher Selektor kann verwendet werden, um elementbasierte Gleichheitsprüfungen für Elementinhalte zu finden. Zumindest nehme ich an, dass er (wie ich) versucht habe, dies zu erreichen, und das würde auch erklären, warum er (ebenso wie ich) die offensichtlichen Gründe nicht verwenden kann, die er in seinem Kommentar dargelegt hat. Wie auch immer, wenn jemand hier stolpert und nach der Antwort auf diese Frage sucht, ist hier die kurze Antwort darauf:

jQuery hat standardmäßig keinen solchen Matcher. Die Lösung besteht darin, Ihren eigenen Matcher zu definieren. Um das Problem zu lösen, besuchen Sie diesen ausgezeichneten Blog posten von Motte.

    
Timo 17.11.2010 21:28
quelle

Tags und Links