2011-09-20 16 views
14

Tam hesaplı bir proje yapıyorum ve gün numarasına göre bir öğe seçebilmem gerekiyor. İşte JQuery iç metinle seç

<div class=​"fc-day-number">​1​</div>​ 

yazdım javascript:

$("div.fc-day-number:contains(" + day + ")").parent().parent().css({ 'background-color': 'Green' }); 

Bu iç metin gün değişkeni içeren tüm div'leri çekecek, sorun olduğunu İşte seçmek gerekir elemanın bir örnek gün == 1 ise, o zaman 11,12,13,21,31, vb. "Fc-day-number" sınıfıyla divleri kapacak ve iç metinleri güne tam olarak eşit olan JQuery selektörünü nasıl yazarım?

$("div.fc-day-number").filter(function(){ 
    return $(this).text() == day; 
}).parent().parent().css({ 'background-color': 'Green' }); 

cevap

15

kendi filter fonksiyonunu yazınız. Örneğin, burada kullanın:

$("div.fc-day-number:text(" + day + ")").parent().parent().css({ 'background-color': 'Green' }); 
+1

Büyük olasılıkla $ (this) .text(). ToLowerCase() === day; –

+0

@Kris Neden? OP sadece sayıları kullanıyor, bu yüzden önemli değil. Ben de ikili denklemleri kullandım çünkü günümün sayısal olacağını düşünürken "text()" bir dize olurdu. – Dennis

+0

Oh, sadece herhangi bir metin/dizgi olabileceğini düşündüm. –

3
$("div.fc-day-number").each(function(){ 
    if($(this).text()==day) 
    { 
     $(this).css({ 'background-color': 'Green' }); 
    } 
}); 
0
jQuery.expr[":"].text = jQuery.expr.createPseudo(function(arg) 
{ 
    return function(elem) { 
     return jQuery(elem).text().toLowerCase() == arg; 
    }; 
}); 

Bu kod elemanlarını arg eşit değildir iç metin filtreleyeceğini yeni pseudoselector katacak:

+0

Bu kod sorunu çözmek için yardımcı olabilir, ancak _why_ ve/veya _how_ bu soruya cevap vermiyor. Bu ek bağlamı sağlamak uzun vadeli eğitim değerini önemli ölçüde artıracaktır. Lütfen, hangi sınırlamaların ve varsayımların geçerli olduğu dahil, açıklama eklemek için cevabınızı [düzenleyin]. –