2012-05-13 5 views
0

私は同じ行を持つphpで動的に生成されたテーブルを持っています。行1のセル1から値を取得し、行2のセル1から値を取得して比較する必要があります。それらが同じであれば行全体を削除するか隠す...テーブル全体で行う...どんな助けもありがとう..ありがとう!!jqueryを使用してテーブル内の異なる行のセルの値を比較します

Haaveこの今のところ:

<tr id='idNum'><td>someText<input type='hidden' value='someData' id='idNum'> 
</td><td>someText</td></tr> 
+0

あなたは同様のIDを使用していますか? – yoda

+0

Fyiでは、HTML5を使用していない限りIDは数字で始めることはできません。 – ThiefMaster

答えて

3

注1.あなたはPHPではなく、JavaScriptでサーバ側で行う必要があります。テーブル内の

var numRows = $('table#changeSubjectKatedra tr').lenght; 
var i = 0; 
do { 
    var cur = $('input#'+i).val(); 
    var next = $('input#'+(i+1)).val(); 
    if(cur == next){ 
     $('tr#'+i).remove(); 
     } 
    i++; 
} while(i<numRows); 

行は次のようになります。

注2.各要素に固有のIDを使用する必要があります。

注3.要素の数値IDを使用しないでください。

注4.必要な操作を行うためにIDはまったく必要ありません。

それでもJavaScriptでそれをしたい場合は、私はあなたがこのようにそれを行うにはお勧め:(live demo here

var rows = $("#changeSubjectKatedra tr"); 
for(var i = 0; i <= rows.length - 2; i++) { 
    if ($(rows[i]).find("input").val() == 
     $(rows[i+1]).find("input").val()) { 
    $(rows[i]).remove(); 
    } 
} 
+0

これはうまくいきました...なぜサーバー側で行うべきですか? – ljencina77

+0

これは簡単でJavaScriptを使用しないと機能しないためです。ページがロードされている間は、すべての行が表示され、ページがロードされた後にのみ行が非表示になります。そしてそれはもっと美しいです。 –

2

あなたはjQueryの.each機能を使用することができます。これは、あなたが提供した説明に従って動作するはずです:

$('table#changeSubjectKatedra tr').each(function() { 
    if (repeat == $(this).children("input")[0].value) { 
     $(this).remove(); 
    } 
    repeat = $(this).children("input")[0].value; 
}); 
関連する問題