[英]Can't append variable but can console log it
我已經為這個問題苦苦掙扎了一段時間,但是我似乎無法弄清楚。 我正在嘗試遍歷JSON對象,並將每個數組的數據附加到index.php中的div上。 但是它以某種方式不起作用,但是我可以console.log
數據但不附加它。
var result;
getData();
function getData() {
$.ajax({
type: "POST",
url: 'api/api.php',
data: {
'information' : 'info'
},
async: false,
success: function(data) {
result = data;
},
dataType: 'HTML'
});
result = $.parseJSON(result);
//console.log(result[1].naam);
}
function dumpData(){
console.log(test);
for(var i = 0; i <= result.length; i++) {
console.log(result[i].naam);
$('<tr>').append(
$('<td>').text(result[i].id),
$('<td>').text(result[i].naam),
$('<td>').text(result[i].brouwer)
).appendTo('#test');
}
}
console.log('Loaded data.');
dumpData();
console.log('Dumped data.');
Index.php:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script src="js/Database.js"></script>
<body>
<div id="test"></div>
</body>
更新: dataType本來是JSON而不是HTML,這就是問題所在。
進行嘗試操作的規范方法是不使用async:false,以在調用成功后追加並將行追加到表。
您還會使用<=
循環一次
此外,您的代碼還依賴結果為正確的JSON,而不是HTML
var result = [ { "id":"0", "naam":"Thom", "brouwer":"Heineken" }, { "id":"1", "naam":"Bram", "brouwer":"Amstel" }, { "id":"2", "naam":"Aad", "brouwer":"Grolsch" } // no comma on the last ]; function dumpData(result){ console.log(result); for(var i = 0; i < result.length; i++) { $('<tr>').append( $('<td>').text(result[i].id), $('<td>').text(result[i].naam), $('<td>').text(result[i].brouwer) ).appendTo('#test'); } } console.log('Loaded data.'); dumpData(result); console.log('Dumped data.');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <table> <tbody id="test"></tbody> </table>
我個人將Ajax編碼為
function getData() {
$.ajax({
type: "POST",
url: 'api/api.php',
data: {
'information' : 'info'
},
success: function(data) {
dumpData(data)
},
dataType: 'JSON'
});
}
並有
function dumpData(data){
您可以嘗試直接在循環中設置HTML以進行div測試。
$('#test').html('<tr><td>'"+ result[i].id +"'</td><td>'"+ result[i].naam +"'</td><td>'"+ result[i].brouwer +"'</td></tr>');
代替
$('<tr>').append(
$('<td>').text(result[i].id),
$('<td>').text(result[i].naam),
$('<td>').text(result[i].brouwer)
).appendTo('#test');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.