jquery遍历新创建的元素

时间:2010-05-19 00:50:53

标签: jquery elements loops

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

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

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

追加功能正常。我的页面显示正确的结果。

但是,我无法用

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

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

谢谢。

3 个答案:

答案 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!"; });