选择按行过滤表格的菜单

时间:2012-04-24 02:42:27

标签: jquery jquery-ui-selectmenu

任何人都可以看看我的小提琴,让我知道我哪里出错了?我只是想检查表格中的第二列,如果它包含所选择的菜单中的任何单词,它应该显示该行。

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

1 个答案:

答案 0 :(得分:0)

您需要将if语句更改为:

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();
                        } 
                     }
                 });             

             });
         }             
     });​
 });​