[英]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.