2017-01-20 5 views
1

Я использую каждую функцию в своем jquery, где в моем родителе указан как это внутри каждой моей функции. Я хочу проверить класс name внутри моего класса list-item. Но мой текущий код показывает это:, вызывающий класс потомка элемента в jquery каждой функции

  $('.list-item').each(function(){ 
      if($(this).text().toUpperCase().indexOf(txt.toUpperCase()) != -1){ 
      $('.list-item').show(); 
     } 
    }); 


<li class="list-item"> 
    some data <span class="name">this data</span> 
</li> 

, что я должен изменить в моем условном операторе для того, чтобы проверить имя класса внутри моего .list-item вместо всего .list-item контента?

ответ

1

Если я читаю ваше сообщение правильно, вы хотите использовать $.find(), чтобы получить .name текст. И вы, вероятно, также хотите показать $(this) внутри цикла, а не все .list-item.

$('.list-item').each(function() { 
 
    var nameText = $(this).find('.name').text(); 
 
    if (nameText.toUpperCase().indexOf(txt.toUpperCase()) != -1) { 
 
    $(this).show(); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<li class="list-item"> 
 
    some data <span class="name">this data</span> 
 
</li>

0

Может попытаться использовать .find()

$('.list-item').each(function(){ 
     if($(this).find('.name').text().toUpperCase().indexOf(txt.toUpperCase()) != -1){ 
     $('.list-item').show(); 
1

Попробуйте

$('.list-item').each(function(){ 
     if($(this).find('.name').text().toUpperCase().indexOf(txt.toUpperCase()) != -1){ 
      $(this).show(); 
     } 
    });