3

我有一张非常简单的桌子

<table>
<tr><td>1</td></tr>
<tr><td>2</td></tr>
<tr><td>3</td></tr>
</table>

当我在 td jquery each() 中使用文本 5 将另一行附加到上表时,它不会循环遍历新添加的行,它只返回预定义的元素,而不是动态添加的元素

$("table > tbody").append("<td>5</td>");
$("table tr td").each(function(){
  alert($(this).text());
});

请在此处查看JS FIDDLE 链接

4

3 回答 3

7

tbody您不能附加td直接将它们包装tr.

现场演示

$("table > tbody").append("<tr><td>5</td></tr>");
$("table tr td").each(function(){
  alert($(this).text());
});
于 2013-03-21T06:07:15.997 回答
5

你的推理不正确。它找不到元素的原因是您的选择器与您要附加的元素的嵌套不匹配。

将元素包裹td在一个tr元素中。

于 2013-03-21T06:07:24.843 回答
1

你需要这样做:

$("table > tbody").append("<tr><td>5</td></tr>");
$("table tr td").each(function(){
  alert($(this).text());
});

原因很简单,您的原始代码将生成新行,因为<tbody><td>5</td></tbody>没有您在每个函数中寻找的 tr 标记。

于 2013-03-21T06:11:33.320 回答