2012-04-24 2 views
0

Может ли кто-нибудь взглянуть на мою скрипку и сообщить мне, где я ошибаюсь? Я просто хочу проверить второй столбец в таблице, и если он содержит какие-либо слова в выбранном меню выбора, он должен показать эту строку.выберите меню, которое фильтрует таблицу по строкам

http://jsfiddle.net/fuelishways/sEUSn/

ответ

0

вам нужно изменить, если заявление на это:

if (check && check.indexOf(letter) > 0) { 
    $(this).parent().show(); 
} 

Ваше состояние было верно, только если выбранное значение не увлекалась (== вместо>). Кроме того, чтобы получить родительский элемент внутри цикла each(), вам всегда нужно ссылаться на текущий объект.

На своем сайте вам необходимо обернуть код внутри события $(document).ready(). Попробуйте это:

jQuery(document).ready(function() { 
    jQuery('select.filterMe').change(function(e) { 
     var letter = jQuery(this).val(); 
     if (letter === 'ALL') { 
      jQuery('tr').show(); 
     } 
     else { 
      jQuery('tr').each(function(rowIdx,tr) { 
       jQuery(this).hide().find('td').each(function(idx, td) { 
        if(idx === 0 || idx === 1) { 
         var check = jQuery(this).text(); 
         if (check && check.indexOf(letter) > 0) { 
          jQuery(this).parent().show(); 
         } 
        } 
       });    

      }); 
     }    
    });​ 
});​ 
+0

, что, казалось, работали, в скрипку, но когда я переместить его на мою веб-страницу в http://visitkoko.edventura.com/index.php?option=com_content&view=article&id=5&Itemid = 5, это не сработает. есть идеи? – fuelishways

+0

@fuelishways, отредактировал мой ответ. Надеюсь, это помогло бы –

+0

любой шанс, что вы могли бы взглянуть на эту скрипку? я пытаюсь отфильтровать его, чтобы показать ли на основе раскрывающегося списка. [ссылка] (http://jsfiddle.net/fuelishways/hu3A2/) – fuelishways