div:not([foo=''])irá selecionar o primeiro e o segundo divelementos. Se você deseja apenas divelementos que têm um atributo foo definido como uma string vazia, você deve usar:
div[foo]:not([foo=''])
Se desejar todos os elementos com atributo fooque não seja ynem z, você deve usar:
Suponha que haja 100 divs dos quais o valor foo está ausente (foo = '') para 50 divs e outros 50 divs têm valores foo diferentes, digamos foo = x ou y etc, então você precisa escrever 50 seletores se seguirmos a solução acima
Shoaib Chikate
2
Essa não é a operação que deseja: "Quero segmentar apenas a primeira das seguintes divs com um seletor de atributo css"
Sunil Hari
Sua resposta está certa com a exigência dele, mas não com uma solução geral que outras pessoas deram.
Shoaib Chikate
@ShoaibChikate Você está correto. Eu quero a solução mais genérica. Eu atualizei a pergunta para refletir isso.
Respostas:
Use o código como este:
fonte
http://jsfiddle.net/gsLvuys0/
fonte
Um problema com a resposta aceita é que ela também selecionará elementos que não possuem nenhum
foo
atributo. Considerar:div:not([foo=''])
irá selecionar o primeiro e o segundodiv
elementos. Se você deseja apenasdiv
elementos que têm um atributo foo definido como uma string vazia, você deve usar:Se desejar todos os elementos com atributo
foo
que não sejay
nemz
, você deve usar:fonte
Você pode selecionar o primeiro usando
FIDDLE
Leia isso
fonte