无法正确使用 jQuery 在 HTML table 中打印 JSON 响应
Not able to print JSON Response in HTML table properly using jQuery
我编写了以下代码用于在 HTML 页面中打印 JSON。
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$.getJSON("http://localhost:8080/json",function(result){
$.each(result, function(i, field){
$("tr").append(field + " ");
});
});
});
</script>
</head>
<body>
<table id="table">
<tr>
<th>market</th>
<th>buy</th>
<th>sell</th>
<th>currency</th>
<th>volume</th>
</tr>
</table>
<div></div>
</body>
</html>
我能够打印 JSON 响应值,但无法在 table 中正确打印它们。
JSON 响应格式:
{
"market": 1309480,
"buy": 1309480,
"sell": 1280017,
"currency": "INR",
"volume": 2253.4518854
}
目前Table的样子:
您需要 <td>
标签来显示 table 中的内容。 <th>
是一个 table header 标签。
试试下面的方法:
$.getJSON("http://localhost:8080/json",function(result){
var tr = '<tr>'; //create tr tag
$.each(result, function(i, field){
tr += '<td>' + field +'</td>'; //loop through the result and create <td>
});
tr += '</tr>'; //close tr tag
$('#table').append(tr); // append it to table
}
此外,我很确定您可能需要在多个列中使用此功能(即,如果您的结果是多个)。为此,您需要使用 2 个循环。试试看。创建 fiddle 以供参考:https://jsfiddle.net/bipen/3prfj474/ ;)
您可以在
中插入标签<td>
$("tr").append(field + " ");
像这样:
$("tr").append("<td>" + field + "</td>");
给你一个解决方案
var result = {
"market": 1309480,
"buy": 1309480,
"sell": 1280017,
"currency": "INR",
"volume": 2253.4518854
};
//$.getJSON("http://localhost:8080/json",function(result){
$('#table').append('<tr/>');
$.each(result, function(i, field){
$('#table').find('tr:last').append('<td>' + field + '</td>');
});
//});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="table">
<tr>
<th>market</th>
<th>buy</th>
<th>sell</th>
<th>currency</th>
<th>volume</th>
</tr>
</table>
<div></div>
我刚刚注释掉了 AJAX
调用,请取消注释并删除结果变量。
首先将 tr
附加到 table,然后使用 jQuery last
选择器获取最后附加的 tr
,并将 table 附加到 td 数据。
希望对您有所帮助。
我编写了以下代码用于在 HTML 页面中打印 JSON。
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$.getJSON("http://localhost:8080/json",function(result){
$.each(result, function(i, field){
$("tr").append(field + " ");
});
});
});
</script>
</head>
<body>
<table id="table">
<tr>
<th>market</th>
<th>buy</th>
<th>sell</th>
<th>currency</th>
<th>volume</th>
</tr>
</table>
<div></div>
</body>
</html>
我能够打印 JSON 响应值,但无法在 table 中正确打印它们。
JSON 响应格式:
{
"market": 1309480,
"buy": 1309480,
"sell": 1280017,
"currency": "INR",
"volume": 2253.4518854
}
目前Table的样子:
您需要 <td>
标签来显示 table 中的内容。 <th>
是一个 table header 标签。
试试下面的方法:
$.getJSON("http://localhost:8080/json",function(result){
var tr = '<tr>'; //create tr tag
$.each(result, function(i, field){
tr += '<td>' + field +'</td>'; //loop through the result and create <td>
});
tr += '</tr>'; //close tr tag
$('#table').append(tr); // append it to table
}
此外,我很确定您可能需要在多个列中使用此功能(即,如果您的结果是多个)。为此,您需要使用 2 个循环。试试看。创建 fiddle 以供参考:https://jsfiddle.net/bipen/3prfj474/ ;)
您可以在
中插入标签<td>
$("tr").append(field + " ");
像这样:
$("tr").append("<td>" + field + "</td>");
给你一个解决方案
var result = {
"market": 1309480,
"buy": 1309480,
"sell": 1280017,
"currency": "INR",
"volume": 2253.4518854
};
//$.getJSON("http://localhost:8080/json",function(result){
$('#table').append('<tr/>');
$.each(result, function(i, field){
$('#table').find('tr:last').append('<td>' + field + '</td>');
});
//});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="table">
<tr>
<th>market</th>
<th>buy</th>
<th>sell</th>
<th>currency</th>
<th>volume</th>
</tr>
</table>
<div></div>
我刚刚注释掉了 AJAX
调用,请取消注释并删除结果变量。
首先将 tr
附加到 table,然后使用 jQuery last
选择器获取最后附加的 tr
,并将 table 附加到 td 数据。
希望对您有所帮助。