Jquery'de belirli bir öznitelik değerine sahip tüm öğeleri bulun


90

Özel bir nitelik değerine sahip tüm öğeleri bulmam gerekiyor.

İşte bulmam gereken div (bende birçoğu var ..)

<div imageId='imageN'>...

Sadece sahip olan div'lerden geçmem gerekiyor imageId='imageN'


6
class="imageN"Geçerli HTML uğruna kullanmanızı tavsiye ederim . Ya öyle ya da data-imageId="imageN"geçerli HTML5 uğruna. İlki ile, sınıf seçiciyi kullanabilirsiniz.
Andy E

Andy, bunun arkasındaki sebep, bu div'lerin arka arkaya koddan dinamik olarak eklenmesi ve farklı ImageId'lere sahip olmalarına rağmen aynı sınıfa sahip olmalarıdır '.
Pabuc

3
Yardımcı class="image imageN"olacaksa birden fazla sınıfa sahip olabilirsiniz .
Val

Zaten aynı sınıfa sahiplerse neden sınıf adını seçmiyorsunuz?
Praxis Ashelin

Yanıtlar:


145
$('div[imageId="imageN"]').each(function() {
    // `this` is the div
});

Hangi değer olursa olsun, özelliğin tek varlığını kontrol etmek için, bunun yerine bu seçiciyi kullanabilirsiniz: $('div[imageId]')


4
@ThiefMaster - Öznitelik değeri sabit değilse (yani değişecekse) nasıl bulunur?
Geliştirici

birkaç soru: 1 - diğer unsurlar hakkında ... 2 - diğer değerler hakkında ... Pek çok öğe için veri niteliğine sahip olabilirim : div'ler, img'ler ve td'ler, burada her biri farklı bir değere sahiptir.
dsdsdsdsd

@ParthoGanguly Bir değişkeni bu şekilde kullanırsınız: $ ('div [imageId = "' + variableName + '"]')
Kama

1
Bu çözüm, bu sayfanın başlığına gerçekten cevap vermiyor. Div olan öğeleri arıyorsunuz. Uygun bir çözüm, gerçek öğenin agnostik olandır.
AndroidDev

166

Soruyu tam olarak yanıtlamasa da, yalnızca belirli bir öznitelik adına sahip (öznitelik değerine göre filtreleme yapmadan) öğelerin koleksiyonunu (potansiyel olarak farklı etiket adları) elde etmenin bir yolunu ararken buraya geldim. Aşağıdakilerin benim için işe yaradığını buldum:

$("*[attr-name]")

Umarım bu, bu sayfaya inen birinin benim olduğum şeyi aramasına yardımcı olur :).

Güncelleme: Yıldız işaretinin gerekli olmadığı anlaşılıyor, yani bazı temel testlere göre aşağıdakiler yukarıdakine eşdeğer görünüyor (Matt'e bunu işaret ettiği için teşekkürler):

$("[attr-name]")

Mükemmel! Tam da aradığım şey.
Paulius Matulionis

Büyük olasılıkla ... Performans yönünü kontrol etmedim (o sırada kullanımım için önemli bir faktör değildi).
sammy34

3
Bununla arasında bir fark var mı $("[attr-name]")? (yani hayır *)
Matthew

Evet aralarında belli bir fark var. yıldız notasyonu firefox'ta hata artışı !!!! (Unescaped ...)
ozz

buna ek olarak, bir nitelik değeri de ekleyebilirsiniz, örneğin:$("[data-toggle='modal']")
MeltingDog

12

Etiket olarak adlandırılmaz; aradığınız şeye html niteliği denir.

$('div[imageId="imageN"]').each(function(i,el){
  $(el).html('changes');
  //do what ever you wish to this object :) 
});

5

(^) İşaretini kullanarak bir DOM öğesini tespit etmek için bir özelliğin kısmi değerini kullanabilirsiniz. Örneğin, aşağıdaki gibi div'leriniz var:

<div id="abc_1"></div>
<div id="abc_2"></div>
<div id="xyz_3"></div>
<div id="xyz_4"></div>...

Kodu kullanabilirsiniz:

var abc = $('div[id^=abc]')

Bu, şununla başlayan kimliğe sahip bir DOM div dizisi döndürür abc:

<div id="abc_1"></div>
<div id="abc_2"></div>

İşte demo: http://jsfiddle.net/mCuWS/


4

Dize birleştirme kullanın. Bunu dene:

$('div[imageId="'+imageN +'"]').each(function() {
    $(this);   
});
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.