1
您能幫我嗎?我正在做的是刪除重複的html表格行。以下是我的代碼。在Jquery中過濾HTML表格行
$("table#" + Grid + " > tbody > tr").each(function() {
ParentID = $(this).find("td:eq(0) input:checkbox").val();
ParentManufacturer = $(this).find("td:eq(2)").html();
$("table#" + Grid + " > tbody > tr").each(function() {
ChildID = $(this).find("td:eq(0) input:checkbox").val();
ChildManufacturer = $(this).find("td:eq(2)").html();
if (ParentID != ChildID && ParentManufacturer == ChildManufacturer) {
$(this).remove();
}
});
});
問題是刪除的錶行仍然在循環。例如。即使我已經用manucafturer名稱'AAA'刪除了表格行,但該行仍在循環中。希望你明白我的意思。所以最終的結果是空表。你能幫我解決這個問題嗎?
什麼'$我在的jsfiddle溶液在5 IST左(「TR:具有(輸入[值= 「+ value +」])「)。remove()'? – jantimon
@jantimon不足 - 他仍然必須迭代每個「
@Alnitak你是對的,但他可以使用http://api.jquery.com/nextAll/ – jantimon
回答
你有兩個顯著的問題:
當尋找於行「N」你只需要比較從行開始其他行的「N + 1」,而不是從一開始就
刪除來自DOM的元素不會將它們從您當前正在迭代的jQuery對象中移除它們...
下面的代碼似乎工作。它依次查看每一行,然後標記任何後續行 -
.nextAll('tr')
- 如果其第二個單元格具有相同的內容,則將其與類remove
進行標記。然後它會完成所有DOM刪除。在http://jsfiddle.net/alnitak/ZzsTt/來源
2013-10-30 16:36:09 Alnitak
,你可以使用while循環
工作演示代替, 你必須先保存您的元素數組中,並遍歷它自己。 當然你需要另一個布爾表達式來比較它們是否符合你的標準。
在該示例只有數組
嵌合上述 http://jsfiddle.net/ZzsTt/19/
來源
2013-10-30 17:41:18 ilgofat
相關問題