div:not([foo=''])wählt sowohl das erste als auch das zweite divElement aus. Wenn Sie nur divElemente mit einem Attribut foo möchten , das auf eine leere Zeichenfolge festgelegt ist, sollten Sie Folgendes verwenden:
div[foo]:not([foo=''])
Wenn Sie alle Elemente mit einem Attribut möchten foo, das weder ynoch ist z, sollten Sie Folgendes verwenden:
Angenommen, es gibt 100 Divs, von denen der foo-Wert für 50 Divs fehlt (foo = ''), und andere 50 Divs haben einen anderen foo-Wert, z. B. foo = x oder y usw. Dann müssen Sie 50 Selektoren schreiben, wenn wir der obigen Lösung folgen
Shoaib Chikate
2
Das ist nicht die Op will: "Ich möchte nur die erste der folgenden Divs mit einem CSS-Attribut-Selektor anvisieren"
Sunil Hari
Ihre Antwort stimmt mit seiner Forderung überein, aber nicht mit einer allgemeinen Lösung, die andere Leute gegeben haben.
Shoaib Chikate
@ShoaibChikate Du hast recht. Ich möchte die allgemeinere Lösung. Ich habe die Frage aktualisiert, um dies widerzuspiegeln.
Antworten:
Verwenden Sie den Code wie folgt:
quelle
http://jsfiddle.net/gsLvuys0/
quelle
Ein Problem mit der akzeptierten Antwort besteht darin, dass auch Elemente ausgewählt werden, die überhaupt kein
foo
Attribut haben. Erwägen:div:not([foo=''])
wählt sowohl das erste als auch das zweitediv
Element aus. Wenn Sie nurdiv
Elemente mit einem Attribut foo möchten , das auf eine leere Zeichenfolge festgelegt ist, sollten Sie Folgendes verwenden:Wenn Sie alle Elemente mit einem Attribut möchten
foo
, das wedery
noch istz
, sollten Sie Folgendes verwenden:quelle
Sie können den ersten mit auswählen
GEIGE
Lesen Sie dies
quelle