2012-01-30 71 views
0

我使用ajax請求從服務器獲取表。將表格插入到html後,我想進行一些修改,但不起作用。不能更新表後使用jquery ajax請求

我的代碼很簡單:

$.get("someurl", function(data) { 
    $("#scenarios").html(data) 
}); 
$("#scenarios table tr:first").append("<th>bla</th>"); 
$("#scenarios table tr:gt(0)").append("<td><input type='checkbox'></td>"); 

我看到桌子上,但我的最後兩行不起作用。 如果我複製這兩行並將它們插入到Chrome控制檯(F12)中,它完美地工作。

有什麼想法?

回答

3

由於ajax異步性質,你寫執行添加表之前,將這些行成功調用之內回

$.get("someurl", function(data) { 
    $("#scenarios").html(data); 
    $("#scenarios table tr:first").append("<th>bla</th>"); 
    $("#scenarios table tr:gt(0)").append("<td><input type='checkbox'></td>"); 
}); 
+0

感謝選擇,現在的工作。 只是古怪 - 我如何使請求同步? – Niros 2012-01-30 09:15:10

+1

設置'async:false'使其同步 – Tassadaque 2012-01-30 10:00:06

2

因爲get是異步的,緊接在請求返回其響應之前它將執行的兩行。您將需要移動回調函數內的那些行:

$.get("someurl", function(data) { 
    $("#scenarios").html(data); 
    $("#scenarios table tr:first").append("<th>bla</th>"); 
    $("#scenarios table tr:gt(0)").append("<td><input type='checkbox'></td>"); 
}); 

另外請注意,你錯過的回調函數的第一行分號。這不是重要的,但最好在他們應該出現的地方使用分號。