2012-03-01 8 views
16

Mam wyszukiwanie danych wejściowych, które ma filtrować div na podstawie tytułu div. Oto kod, który nie działa:Pokaż divs na podstawie wyszukiwania tekstowego

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

Co robię źle?

EDYTOWANIE: Wyjaśnienie zmiennej txt jest tym, co użytkownik wpisał w polu wprowadzania. Przykładem może być, jeśli txt był Cha chciałbym pokazać ten wiersz:

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

Odpowiedz

41

spróbować tej

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

documentation for :contains() Selector

skrzypce przykład: http://jsfiddle.net/WBvTj/2/

UPDATE CASE INSE NSITIVE:

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

skrzypce Przykład: http://jsfiddle.net/WBvTj/4/

+0

Zobacz dodatkowe wyjaśnienie powyżej. Patrzę na ocenę tekstu wewnątrz div. –

+0

zaktualizował odpowiedź. Sprawdź, czy –

+0

Działa to głównie, czy jest jakiś sposób, aby uczynić tę sprawę niewrażliwą? –

0

szczęście jQuery posiada selektor Contains:

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

Sposób find trwa selektor JQuery jako parametr. Wątpię, czy wprowadzanie tekstu będzie zawierało te dane. Zakładając, że będzie ona zawierać pewne podciąg tytułu div, a następnie spróbuj tego:

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

Poniższy powinna być wielkość liter, a mecz tylko na tekście w pierwszym a href w Gr:

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

filtr daje masz listę elementów, które zwracają wartość true od tej funkcji, aby zastosować show() do.
Powrót w funkcji filtra można odczytać jako: "dla pierwszego elementu kotwicy w tym elemencie, weź zawartość, dopasuj do wzorca, a jeśli wynikowa tablica zawiera co najmniej jeden wynik, zwróć true".

"i" na końcu wzoru powoduje dopasowanie do wielkości liter.

Powiązane problemy