我正在尝试在表格中添加新行,并将它们保存到数据库中。
首先,我使用.append()在表上追加行:
$("#tablename").append("<tr id='newRow'><td>newly added row</td></tr>");
追加功能正常。我的页面显示正确的结果。
但是,我无法用
选择它们$("#newRow").each(function () { alert "it never reaches here!"; });
我猜这是因为在加载DOM之后添加了元素。 有谁能告诉我如何迭代我所有新添加的元素?
谢谢。
答案 0 :(得分:10)
在这种情况下你应该使用class
,ID必须是唯一的(它是无效的HTML,否则会产生一些奇怪的行为),如下所示:
$("#tablename").append("<tr class='newRow'><td>newly added row</td></tr>");
$(".newRow").each(function () { alert "it never reaches here!"; });
答案 1 :(得分:1)
尼克的方法很好,这是另一个:
$(function(){
//add a class to mark the last row on load
$('#tableName tr:last').addClass('lastRow');
// ...
// select new rows when you click save
$('input:submit').click(function(){
$('#tableName tr.lastRow').nextAll().each(function(){
alert('added row');
});
});
});
答案 2 :(得分:-1)
如果您只需要循环新行,则可以执行以下操作:
var rows = $("<tr class='newRow'><td>newly added row</td></tr>").appendTo('#tablename');
rows.each(function () { alert "it never reaches here!"; });