0

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

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

4

1 回答 1

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

             });
         }             
     });​
 });​
于 2012-04-24T04:15:31.307 回答