我想创建一个表然后将其附加到div,并且应该同时显示创建的表。
这就是我尝试过的,
var content = "<table class='table1'>";
$.getJSON("/controller/Method",
{
param1: val1
},
function (data) {
$.each(data, function (key, value) {
content += "<tr><td class='class1'>text1</td></tr>";
});
content += "</table>"
});
alert(content);
$('#div1').append(content);
alert(content)
仅显示table class='table1'>
。似乎每个函数中的连接内容尚未添加到table class='table1'>
。
$.each
执行3次,因此它应该有3 <tr></tr>
。这段代码有什么问题。请指教。
答案 0 :(得分:0)
尝试对实例进行此更改。
var content = document.createElement('table');
$(content).addClass('table1');
var myTable = $(content);
$.getJSON("/controller/Method",
{
param1: val1
},
function (data) {
$.each(data, function (key, value) {
myTable.append("<tr><td class='class1'>text1</td></tr>");
});
});
$('#div1').append(myTable);
希望它有所帮助。如果它不起作用,请告诉我。
答案 1 :(得分:0)
您也可以这样写(使用promises)。您可以在此处阅读有关承诺界面的更多信息:http://api.jquery.com/jquery.getjson/
var table = $("<table></table>").addClass("table1");
$.getJSON("/controller/Method",{ param1: val1 })
.done(function(data){
$.each(data, function (key, value) {
table.append("<tr><td class='class1'>text1</td></tr>");
});
$('#div1').append(table);
})
.fail(function(response){
alert("something is wrong");
});
稍微短一些: - )