Tidak dapat menemukan pemilih atribut css "tidak sama"


Jawaban:


175

Gunakan kode seperti ini:

div:not([foo=''])
{
    /* CSS Applied to divs having foo value Not nothing (or having a foo value assigned) */
}


6

Satu masalah dengan jawaban yang diterima adalah bahwa jawaban tersebut juga akan memilih elemen yang tidak memiliki fooatribut sama sekali. Mempertimbangkan:

<div>No foo</div>
<div foo="">Empty foo</div>
<div foo="x">XXX</div>
<div foo="y">YYY</div>
<div foo="z">ZZZ</div>

div:not([foo=''])akan memilih elemen pertama dan kedua div. Jika Anda hanya menginginkan divelemen yang memiliki atribut foo yang disetel ke string kosong, Anda harus menggunakan:

div[foo]:not([foo=''])

Jika Anda menginginkan semua elemen dengan atribut fooyang bukan ynor z, Anda harus menggunakan:

div[foo]:not([foo='y']):not([foo='z'])

1

Anda dapat memilih yang pertama menggunakan

[foo = 'x']{
  background:red;
}

BIOLA

Baca ini


Misalkan ada 100 div yang nilai foo tidak ada (foo = '') untuk 50 div dan 50 div lainnya memiliki nilai foo berbeda katakanlah foo = x atau y dll maka Anda perlu menulis 50 selektor jika kita mengikuti solusi di atas
— Shoaib Chikate

2
Itu bukan keinginan operasi: "Saya ingin menargetkan hanya div pertama berikut dengan pemilih atribut css"
— Sunil Hari

Jawaban Anda benar dengan persyaratannya tetapi bukan solusi umum yang telah diberikan orang lain.
— Shoaib Chikate

@ShoaibChikate Anda benar. Saya ingin solusi yang lebih umum. Saya memperbarui pertanyaan untuk mencerminkan itu.
— Adrian Rosca
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.