2012-05-13 32 views
0

我有一個動態生成的表與PHP具有相同的行。需要從第1行的單元格1中獲取值,並從第2行的單元格1中獲取值並對它們進行比較。如果他們是相同的刪除整行或隱藏...做整個表...任何幫助表示讚賞..謝謝!比較表中不同行的單元格值使用jquery

Haave這個至今:

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> 
+0

您正在使用類似的ID? – yoda

+0

Fyi,除非您使用HTML5,否則ID不能以數字開頭。 – ThiefMaster

回答

3

注意事項1.你應該做在服務器端使用PHP,不使用JavaScript。

注意2.您必須爲每個元素使用唯一的ID。

注3.避免使用數字元素。

注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的。每個功能。這應該按照您提供的說明工作:

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