3

我正在尝试在我的表中添加新行,并将它们保存到数据库中。

首先,我使用 .append() 在表上追加行:

$("#tablename").append("<tr id='newRow'><td>newly added row</td></tr>");

附加功能工作正常。我的页面显示正确的结果。

但是,我无法选择它们

$("#newRow").each(function () { alert "it never reaches here!"; });

我猜这是因为元素是在加载 DOM 之后添加的。谁能告诉我如何遍历所有新添加的元素?

谢谢你。

4

3 回答 3

10

对于这种情况,您应该使用 a class,ID 必须是 unqiue(它是无效的 HTML,否则会产生一些奇怪的行为),如下所示:

$("#tablename").append("<tr class='newRow'><td>newly added row</td></tr>");

$(".newRow").each(function () { alert "it never reaches here!"; });
于 2010-05-19T00:54:15.263 回答
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');
     });
  });
});
于 2010-05-19T01:14:13.617 回答
-1

如果您只需要循环新行,您可以这样做:

var rows = $("<tr class='newRow'><td>newly added row</td></tr>").appendTo('#tablename');
rows.each(function () { alert "it never reaches here!"; });
于 2010-05-19T01:09:40.687 回答