0

同じ行を持つphpで動的に生成されたテーブルがあります。行1のセル1から値を取得し、行2のセル1から値を取得して比較する必要があります。それらが同じ場合は、行全体を削除するか非表示にします...テーブル全体に対してそれを行います...どんな助けも大歓迎です..ありがとう!!

これまでのところ:

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

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

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

2 に答える 2

3

注 1. サーバー側は JavaScript ではなく PHP で行う必要があります。

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

注 3. 要素の数値 ID の使用は避けてください。

注 4. やりたいことをするのに ID はまったく必要ありません。

それでも JavaScript でやりたい場合は、次のようにすることをお勧めします: (ライブ デモはこちら)

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();   
  }
}
于 2012-05-13T09:20:28.613 に答える
2

jQuery の .each 関数を使用できます。これは、提供した説明に従って機能するはずです。

$('table#changeSubjectKatedra tr').each(function() {
    if (repeat == $(this).children("input")[0].value) {
        $(this).remove();
    }
    repeat = $(this).children("input")[0].value;
});
于 2012-05-13T09:29:22.867 に答える