Ich bin auf der Suche nach einem CSS-Selektor für die folgende Tabelle:
Peter | male | 34
Susanne | female | 12
Gibt es einen Selektor für alle TDs, die "männlich" enthalten?
Ich bin auf der Suche nach einem CSS-Selektor für die folgende Tabelle:
Peter | male | 34
Susanne | female | 12
Gibt es einen Selektor für alle TDs, die "männlich" enthalten?
Wenn ich lese die Spezifikation richtig, nein.
Sie können auf ein Element, den Namen eines Attributs im Element und den Wert eines benannten Attributs in einem Element abgleichen. Ich sehe jedoch nichts für die Übereinstimmung von Inhalten innerhalb eines Elements.
Sieht so aus, als hätten sie es für die CSS3-Spezifikation in Betracht gezogen aber er hat es nicht in die Auswahl geschafft .
:contains()
CSS3 Selektor http://www.w3.org/TR/css3-selectors/#content-selectors
Es gibt tatsächlich eine sehr konzeptionelle Grundlage dafür, warum dies nicht umgesetzt wurde. Es ist eine Kombination von im Wesentlichen 3 Aspekten:
Diese drei Punkte zusammen bedeuten, dass Sie, sobald Sie den Textinhalt haben, nicht mehr zum enthaltenden Element zurückkehren können, und Sie können den vorhandenen Text nicht mehr gestalten. Dies ist wahrscheinlich von Bedeutung, da das Abwärtssteigen nur eine einmalige Verfolgung des Kontexts und das Parsen im SAX-Stil ermöglicht. Aufsteigende oder andere Selektoren, die andere Achsen einbeziehen, machen komplexere Traversal- oder ähnliche Lösungen erforderlich, die die Anwendung von CSS auf das DOM erheblich erschweren würden.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
1 Stimmen
Das Problem ist, dass dies sehr schwer in einer performanten Weise zu implementieren wäre.
11 Stimmen
Ein XPath-Selektor kann dies mit der Methode .text() tun (wenn Sie es vorziehen, keinen JavaScript-Executor zu verwenden).
19 Stimmen
Hier ein Beispiel dafür, wie man es mit xpath machen kann: //h1[text()='Session'] und Sie können xpath in Chrome testen, indem Sie $x("//h1[text()='Session']") in die Konsole eingeben
2 Stimmen
Das wäre so praktisch. Zum Beispiel könnte eine Tabellenzelle, die ein Häkchen oder die Zeichenfolge "Ja", "Bestanden", "OK" usw. enthält, grün sein.
0 Stimmen
Die
$x
beantwortet die Frage. für die ursprüngliche Frage,$x("//td[text()='male']")
erfüllt den Zweck0 Stimmen
@Ms2ger und das ist der Grund, warum es in der Regel in einer imperformanten Weise mit JavaScript implementiert wird :q
0 Stimmen
Die beste Antwort auf die Frage, wie dies in den aktuellen Standards zu bewerkstelligen ist, findet sich unter der akzeptierten Antwort, hier: stackoverflow.com/a/41281583/1163705 und wenn jQuery keine Option ist, kann es auch in Vanilla JS gemacht werden.
0 Stimmen
Ist es möglich, css-Selektor wie xpath "enthält" Methode zu finden? Ich habe dynamische css für das Element, weil dieses Element zu viele Male auf der Seite sein kann.