2014-04-24 23 views
0

我想創建一個表,然後將其附加到div,哪些應該同時顯示創建的表。如何創建表,然後附加到div和使用jQuery顯示錶

這是我已經試過了,

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

您確保「數據」有一定的價值,因爲它看起來像「數據」不具有任何值,因此它不在$ .each中循環。您可以通過放置警報(「測試」)來檢查;在$ .each內。 –

回答

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); 

希望它有幫助。讓我知道如果它不起作用。

0

你也可以這樣寫(使用承諾)。你可以閱讀更多有關承諾接口位置: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"); 
    }); 

只是有點短:-)

相關問題