2012-03-01 18 views
16

Div başlığına dayalı olarak div'leri filtrelemesi beklenen bir metin giriş aramam var. İşte çalışmayan kod:Metin aramasına göre divleri göster

$('.contact-name').each(function(){ 
    var txt = $('#search-criteria').val(); 
    $('this').find(txt).show()  
}); 

Neyi yanlış yapıyorum?

DÜZENLEME: Txt değişkenini açıklığa kavuşturmak için kullanıcının giriş alanına yazdığı şeydir.

<div class="contact-name"><h3><a href="##">Charles Smith</a></h3></div> 

cevap

41

bu

var txt = $('#search-criteria').val(); 
$('.contact-name:contains("'+txt+'")').show(); 

documentation for :contains() Selector

keman örneği deneyin Durumda NSITIVE:

var txt = $('#search-criteria').val(); 
$('.contact-name').each(function(){ 
    if($(this).text().toUpperCase().indexOf(txt.toUpperCase()) != -1){ 
     $(this).show(); 
    } 
}); 

keman Örnek: http://jsfiddle.net/WBvTj/4/

+0

Yukarıdaki ek açıklamaya bakın. Div içindeki metni değerlendirmek için bakıyorum. –

+0

cevabı güncelledi .. –

+0

Bu çoğunlukla çalıştığını, bu büyük/küçük harf duyarlı hale getirmek için bir yolu var mı? –

0

Neyse jQuery Contains seçici vardır:

$('.contact-name').each(function(){ 
    var txt = $('#search-criteria').val(); 
    $(this).find('div:contains("'+txt+'")').show()  
}); 
0

find yöntem parametresi olarak bir JQuery seçici alır bir örnek txt Cha olsaydı bu satır göstermek isteyeceğini olacaktır. search_criteria metin girişiniz bunu içereceğinden şüpheleniyorum. o DIV başlığının bazı alt dize içerecektir varsayarsak, o zaman bu deneyin: http://jsfiddle.net/WBvTj/2/

GÜNCELLEME:

var txt = $('#search-criteria').val();  
$('.contact-name').each(function(i, e){ 
    if($(e).attr("title").indexOf(txt)>=0) $(e).show(); 
}); 
0

div ilk a href yalnızca metin üzerinde küçük harf duyarsız ve maç olmalıdır:

var pattern = "/" + $('#search-criteria').val() + "/i"; 
$('.contact-name').filter(function() { 
    return $(this 'a:first-child').html().match(pattern).length > 0; 
}).show(); 

filtre verir show() 'a uygulamak için bu işlevden true olan öğeler listesi.
Filtre işlevindeki dönüş şu şekilde okunabilir: "bu öğedeki ilk ankraj elemanı için, içeriği alın, desene göre eşleştirin ve sonuçta oluşan dizi 1 veya daha fazla sonuç içeriyorsa, true değerini döndürün".

Modelin sonundaki "i", büyük/küçük harf duyarlı olmayan eşleştirmeyi sağlayan şeydir.

İlgili konular