2016-12-18 13 views
5

Mam Lista A:Jak sprawdzić dokładny tekst na liście a używając Jquery?

<div class='label'> 
    <a>Menu</a> 
    <a>Menu Food</a> 
    <a>Menu Drink</a> 
    <a>Cheese</a> 
</div> 
<div class="mytext"> 
    this text need hide. 
</div> 

Jak mogę sprawdzić wykaz a powyżej ma dokładny text = "menu".

użyłem tego skryptu, ale to nie działa:

$('.label a').filter(function(){ 
    if($.trim($(this).text()) == "Menu"){ 
     $('.mytext').show(); 
    } 
    else { 
    $('.mytext').hide(); 
    } 
}); 

ja też nie można używać for loop i użyć warunku wewnątrz.

Dziękuję bardzo.

+0

Chcesz tylko dla 'Menu' być pokazał Menu Food' lub' 'Menu Drink' też? – Ionut

+0

Tak. Potrzebujesz dokładnego "Menu" w "a". –

Odpowiedz

2

Updated fiddle.

Można zastosować operację dla wszystkich dopasowanych kotwice używając zwrotu:

return $.trim($(this).text()) == "Menu"; 

Jeśli chcesz pokazać div tylko jeśli jest kotwica z Menu tekstu można użyć flagi (menu_exist w moim przykładzie) w warunek wtedy pokazuje, czy to pomaga.

var menu_exist=false; 
 
$('.mytext').hide(); 
 

 
$('.label a').filter(function(){ 
 
    if($.trim($(this).text())=="Menu"){ 
 
    menu_exist=true; 
 
    } 
 
}); 
 

 
if(menu_exist){ 
 
    $('.mytext').show(); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class='label'> 
 
    <a>Menu</a> 
 
    <a>Menu Food</a> 
 
    <a>Menu Drink</a> 
 
    <a>Cheese</a> 
 
</div> 
 
<br> 
 
<div class="mytext"> 
 
    this text need hide. 
 
</div>

+0

Witam Zakaria. Tutaj możesz zobaczyć co mam na myśli? https://jsfiddle.net/Ljjukd5m/1/ –

+0

Czy chcesz pokazać 'mytext' div, jeśli jest kotwica z dokładnym słowem' Menu' ?? –

+0

Tak. i Ukryj go, jeśli nie ma dokładnego "Menu" na liście a. –

1

użytkowania $.trim($(this).text()) != "Menu" aby wybrać wszystkie elementy, które nie jest Menu a następnie użyć hide() na nich.

$('.label a').filter(function(){ 
 
    return $.trim($(this).text()) != "Menu"; 
 
}).hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class='label'> 
 
    <a>Menu</a> 
 
    <a>Menu Food</a> 
 
    <a>Menu Drink</a> 
 
    <a>Cheese</a> 
 
</div>

+0

Zaktualizowałem swój kod. Czy możesz to jeszcze raz sprawdzić, dziękuję –

+0

@MinhAnh zaktualizowałam moją odpowiedź –

1

I fiddled się trochę :-) i stosowane .filter() function

Druga postać tego sposobu pozwala na filtrowanie elementy przeciwko funkcję niż selektora. Dla każdego elementu, jeśli funkcja zwraca wartość true (lub "truey"), element będzie zawarty w przefiltrowanym zestawie; w przeciwnym razie zostanie on wykluczony

var list = $('.label a').filter(function() { 
 
    return $.trim($(this).text()) === "Menu" 
 
}); 
 

 

 
console.log(list.length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class='label'> 
 
    <a>Menu</a> 
 
    <a>Menu Food</a> 
 
    <a>Menu Drink</a> 
 
    <a>Cheese</a> 
 
    <a>Menu</a> 
 
</div>

Powiązane problemy