2013-03-21 39 views
3

我有一個很簡單的表jquery的)不通過新添加的表中的行

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

當我在另一行追加到上表中的文本5 TD jquery的每個()不會不循環遍歷新添加的行僅返回預定義的元素不是元素動態添加

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

請參閱JS FIDDLE LINK HERE

+1

您的選擇器是'tr td',而您直接將新的'​​'放在''中。 – 2013-03-21 06:20:54

回答

6

tbody您不能追加td直接包裝他們在tr

Live Demo

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

http://jsfiddle.net/reigel/v7znh/2/ – Reigel 2013-03-21 06:07:54

+0

即使Chrome瀏覽器無效,Chrome仍可讓您這樣做。看到OP的小提琴。 – 2013-03-21 06:08:23

+0

@Reigel Kunwari發生了什麼事? ;) – alex 2013-03-21 06:09:31

5

你的推理是不正確。找不到元素的原因是因爲您的選擇器不匹配您正在追加的元素的嵌套。

td元素包裝在tr元素中。

1

你需要這樣做:

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

原因很簡單,你,你原來的代碼將產生新的行作爲<tbody><td>5</td></tbody>沒有,你是在每個功能尋找tr標籤。

相關問題