使用jquery比较表中不同行的单元格值

时间:2012-05-13 09:09:07

标签: php jquery

我有一个动态生成的表,其中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>  

2 个答案:

答案 0 :(得分:3)

注意1.您应该在服务器端使用PHP,而不是使用JavaScript。

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

答案 1 :(得分:2)

您可以使用jQuery的.each函数。这应该根据您提供的描述工作:

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