2017-02-17 22 views
0

私はテーブルの行を持っています。テーブル行を特定のパラメータで表示する方法は?

<tr class='tr_h' title='fruits'><td>This is fruits row</td></tr> 
<tr class='tr_d' title='fruits'><td>Apple</td></tr> 
<tr class='tr_d' title='fruits'><td>Chicken</td></tr> 
<tr class='tr_d' title='fruits'><td>Beef</td></tr> 
<tr class='tr_d' title='fruits'><td>Pea</td></tr> 
<tr class='tr_h' title='meats'><td>This is meat row</td></tr> 
<tr class='tr_d' title='meats'><td>Apple</td></tr> 
<tr class='tr_d' title='meats'><td>Chicken</td></tr> 
<tr class='tr_d' title='meats'><td>Beef</td></tr> 
<tr class='tr_d' title='meats'><td>Pea</td></tr> 
<tr class='tr_h' title='nuts'><td>This is nuts row</td></tr> 
<tr class='tr_d' title='nuts'><td>Apple</td></tr> 
<tr class='tr_d' title='nuts'><td>Chicken</td></tr> 
<tr class='tr_d' title='nuts'><td>Beef</td></tr> 
<tr class='tr_d' title='nuts'><td>Pea</td></tr> 

テーブルの行をタイトル値で表示しようとしました。私の望むテーブル:

<tr class='tr_h' title='fruits'><td>This is fruits row</td></tr> 
<tr class='tr_d' title='fruits'><td>Apple</td></tr> 
<tr class='tr_h' title='meats'><td>This is meat row</td></tr>  
<tr class='tr_d' title='meats'><td>Chicken</td></tr> 
<tr class='tr_d' title='meats'><td>Beef</td></tr>  
<tr class='tr_h' title='nuts'><td>This is nuts row</td></tr> 
<tr class='tr_d' title='nuts'><td>Pea</td></tr> 

この行はPHPコードで生成され、それとまったく同じように表示されます。私はテーブルをソートするためにjQueryを使ってみました。しかし、それは期待どおりに動作していません:

$('.tr_h').each(function(){ 
    var id_m = $(this).attr('title') 

    $('.tr_d').each(function(){ 
      var id_d = $(this).attr('title'); 

      if(id_d != id_m){ $(this).css('display','none'); } 
      else{ $(this).css('display','block')}; 
    }); 
}); 

PS:タイトル属性を使用して私について私のことを言ってはいけません。ありがとうございました。

+2

質問を追加する代わりにPHPコードを変更しないのはなぜですか? – JapanGuy

+0

jQueryでドットを追加するのを忘れました。しかし、まだ問題は解決されていません。 –

+1

@JapanGuy ''はtitle属性( '')を持っています。私はPHPを使用してすべてのデータを選択し、jQueryを使用してデータを管理したいと思います –

答えて

0

私はそれを自分自身を説明することはできません...

しかし、このjQueryのコードは、あなたが望んでいただけのように...何とか...動作するはずです:

var pos=0; 
$('.tr_h').each(function(i) { 
    var yea = $(this).nextUntil('.tr_h'); 
    yea.not(yea.slice(pos,pos+1+(i==1))).hide(); 
    pos+=(i==1); 
    pos++; 
}); 
+0

Saya jg org indo XD。 –

+0

これを承認済みの回答としてマークします。v –

0

別のjQueryのは、私が発見:

$('.tr_d').each(function(){ 
    var id_d = $(this).attr('title') 
    var id_m = $(this).closest('tbody').find('.tr_h').attr('title'); 

    if(id_d != id_m){$(this).css('display','none'); } 
}); 
関連する問題