jQuery: Boş olmayan veri özniteliklerini seçin.


Yanıtlar:


77

Deneyin

$(':not([data-go-to=""])')

GÜNCELLEME:

Kimseyi yanlış yola yönlendirmemek adına, bu yanıt jQuery'nin eski sürümlerinde çalışacak ancak geleceğe yönelik değildir. @Gmo ve @ siva'nın yanıtlarının her ikisi de sonraki sürümlerde çalışıyor gibi göründüğünden, onların yanıtlarını ertelerim (ve sizi oylamaya teşvik ederim) .... ve tabii ki harika bir gün geçirmenizi dilerim.


teşekkürler, bu harika çalıştı! Yalnızca resim öğelerini seçmek istedim, bu yüzden $ (': not (img [data-go-to == ""]')
msanjay

2
Bu, boş bir "alınacak veri" özniteliği olmayan tüm öğeleri seçmez mi? Soruyu soran kişi bu niteliğe sahip boş olmayan tüm öğeleri istediğinde? (Siva
Charan'ın

çift ​​tırnağa ihtiyacım yok ... ya $('element:not([attribute=])'); // gets all of <element attribute="">da$(':not([attribute=])'); // gets all of <* attribute="">
Anthony Hatzopoulos

2
Bu, aradığım veri özniteliğine sahip olanlar da dahil olmak üzere benim için her öğeyi alıyor
Devil's Advocate

Safari'de $('[data-go-to!=""]:[data-go-to]')çalışmıyor gibi görünüyor ama çalışıyor .
Dan

190

Sadece daha fazla referans ve bir şekilde yukarı güncel (may'14) (aug'15) (sep'16) (apr'17) (mar'18) (mar'19) ( may'20 ) ...
Aşağıdakilerle çalışan cevap:

Boş dizeler:

Eğer gerekir var ve olabilir herhangi bir değere sahip (hiç ya da hiç)attr

    jQuery("[href]");

Eksik özellikler:

Eğer olabilir mevcut ve varsa, gereken bazı değere sahip attr

    jQuery("[href!='']");

Ya da her ikisi de:

Eğer gerekir var ve olması gerekiyor bazı değer ... attr

    jQuery("[href!=''][href]");

Not : daha fazla kombinasyon mümkündür ...


Örnekler için jsFiddle'daki bu testi kontrol edin :


Veya burada, bu Kod Parçacığı ile SO'da .

* Snippet, jQuery v2.1.1'i çalıştırıyor


6
budur. Bu kullanıcıya tam burada oy verin. diğer eski cevaplar benim için çalışmıyor. Üçüncü örneği kullandım.
Valamas

Seconded @ Valamas-AUS
Adam Waite

Düzenleme: SO Kod Parçacığı eklendi, böylece burada test edebilirsiniz.
gmo

Çalışan bu. $(':not([data-go-to=""])')artık çalışmıyor
Matthieu Charbonnier

1
Cevabı güncel tuttuğunuz için teşekkürler
Anthony C

19
$('[data-go-to!=""]:[data-go-to]').each(function() {
    // Do Your Stuff
});​

6
Bu, boş dizgiler ve eksik öznitelikler için çalışıyor, mükemmel
adamJLev

4
Mayıs'14 itibariyle çalışmıyor, Unrecognized Expressionhata veriyor .
coding_idiot

7

"Veri özniteliği adı" vardır ve değeri boş değildir:

$('[data-attributename]:not([data-attributename=""])')

"Data-attributename" boş veya değil:

$('[data-attributename]')

JS Fiddle örneği


1
Haziran 2015'te benim için hala geçerli olan tek cevap bu.
AlexioVay




2
$('[data-go-to]').filter(function() {
    return $(this).data('go-to')!="";
});

, Vb. Kullanımı :not, data özniteliğini değil, yalnızca elemanın boş olup olmadığını kontrol eder. Bunun için veri öznitelikleri değerine göre filtrelemeniz gerekecektir..not():empty

VAKTİNİ BOŞA HARCAMAK


1

Bu benim için çalışıyor

$('[attributename]').filter('[attributename!=""]')

Bunlar iki yinelemedir.
Jens


0

Bu benim için çalışıyor:

$('.data .title td[data-field!=""]')
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.