jquery each()不会遍历新添加的表行

时间:2013-03-21 06:05:49

标签: javascript jquery html

我有一个非常简单的表

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

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

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

请参阅JS FIDDLE LINK HERE

3 个答案:

答案 0 :(得分:6)

tbody中,您无法在td中直接 追加tr

<强> Live Demo

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

答案 1 :(得分:5)

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

td元素包裹在tr元素中。

答案 2 :(得分:1)

你需要这样做:

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

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