0

誰かが私のフィドルを見て、どこが間違っているのか教えてもらえますか? テーブルの 2 番目の列を確認したいだけで、選択された選択メニューに単語が含まれている場合は、その行を表示する必要があります。

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

4

1 に答える 1

0

ifステートメントを次のように変更する必要があります。

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

選択した値が適切でない場合(>ではなく==)にのみ、条件が真になります。また、each()ループ内で親をフェッチするには、常に現在のオブジェクトを参照する必要があります。

$( document ).ready()Webサイトでは、イベント内にコードをラップする必要があります。これを試して:

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 に答える