2011-09-28 9 views
24

belirli sınıf tarafından bulun. Bu yüzden arka uç takımının yapısında iyi düşünülmemiş bir şey üzerinde çalışıyorum. Bu bana div dolu bir belge bırakıyor.jquery öğesi, elemanın birden çok sınıf olduğunda

Yaptığım şey, üzerine tıklamak zorunda olduğum öğeden geri dönüyor, üst kapsayıcıyı al, sonra class="alert-box warn", class="alert-box dead" vb. Içeren üst öğede bir öğe bul ... Temelde, birden çok kullanmaya çalışıyorum her elemanın sınıf seçicileri. Sadece alert-box bulmaya çalıştığımda, doğru çalışmıyor gibi görünüyor. warn, ölü, `` fine, etc 'olduğu için farz ediyorum.

Sadece joker kavramına alert-box* veya eşdeğerini nasıl bulabilirim?

+2

HTML işaretlemenizin bir örneğini gönderir misiniz? –

cevap

52

Bu

$(".alert-box.warn, .alert-box.dead"); 

gibi seçicileri birleştirebilir Veya isterseniz bir joker attribute-contains selector

$("[class*='alert-box']"); 

Not kullanın: Yukarıdaki seçicileri kullanırken Tercihen Eğer eleman türü veya etiketi bilemez. Etiketi bilmek, seçiciyi daha verimli hale getirebilir.

$("div.alert-box.warn, div.alert-box.dead"); 
$("div[class*='alert-box']"); 
+0

İlk seçiciyi ikincisinin üzerine öneririm. – Bojangles

+1

Ayrıca, * = for^= öğesinin sınıfının "içeren" uyarı kutusu yerine "uyarı" kutusuyla başlatıldığından emin olmak istiyorsanız, bunun yerine kullanabilirsiniz. –

+0

Sadece bir örnek gönderdim jsfiddle https://jsfiddle.net/frxyqzw3/2/ sınıfı gösteriliyor * fikir – shadi

2

Öğe, herhangi bir sayıda sınıf adına sahip olabilir, ancak yalnızca bir sınıf özniteliği olabilir; sadece birincisi jQuery tarafından okunacaktır.

Gönderdiğiniz kodu kullanarak, $(".alert-box.warn") çalışmayacak ancak $(".alert-box.dead") bunu yapmayacaktır.

+0

Sadece ilk 'class =" "' özniteliği tarayıcı tarafından okunacak, yalnız jQuery. – Bojangles

+0

Bu yanıtla karşılaşmak istediğim nokta buydu, yeterince açık değil mi? –

+0

Sadece jQuery'nin, tarayıcıyı HTML ayrıştırıcısının göz ardı etmesi nedeniyle başka bir "class =" "' olmasını istemediğini açıklığa kavuşturmak istedim. – Bojangles

-1

sen Çok gibi birden sınıfları ile öğeleri seçebilirsiniz http://api.jquery.com/hasClass/

<div id="mydiv" class="foo bar"></div> 

$('#mydiv').hasClass('foo') //returns ture 
+4

Hayır, değil - sahip olduğu bir öğenin bir sınıfı olup olmadığını görmemek için, hangi sınıfa sahip olduklarını temel alan öğeleri seçmek istiyor. – Bojangles

3
var divs = $("div[class*='alert-box']"); 
7

arıyoruz:

$("element.firstClass.anotherClass"); 

Basitçe bir olmadan birincinin üzerine ertesi sınıf zincirlemek boşluk (boşluk "çocuklar" anlamına gelir).