gpt4 book ai didi

javascript - 将 JSON 输出到 html 表

转载 作者:行者123 更新时间:2023-11-29 21:12:23 24 4
gpt4 key购买 nike

我在将 JSON 输出到我的选项卡中的 HTML 表时遇到问题(对于 javascript/jQuery 晚间类(class)作业的一部分)。请有人看一下,并建议我必须做出什么样的修改才能以表格格式输出?我收到成功警报,但表格未填充。

谢谢。

// Tabs
$(function() {
$( "#tabs" ).tabs();
});

// Spanish
$(document).ready(function(){
$.ajax({
url: "http://learn.cf.ac.uk/webstudent/sem5tl/javascript/assignments/spanish.php", // path to file
dataType: 'jsonp',
jsonp: 'callback',
jsonpCallback: 'jsonpCallback',
success: function () {
alert('success');
}
});
});

function drawTable(data) {
for (var i = 0; i < data.length; i++) {
drawRow(data[i]);
}
}

function drawRow(rowData) {
var row = $("<tr />")
$("#table").append(row);
row.append($("<td>" + rowData.course + "</td>"));
row.append($("<td>" + rowData.name + "</td>"));
row.append($("<td>" + rowData.price + "</td>"));
}

和 HTML:

<div id="tabs">
<ol start="50">
<li>
<a href="#tab-1">Italian</a>
</li>
<li>
<a href="#tab-2">Spanish</a>
</li>
</ol>

<p id="tab-1"></p>
<p id="tab-2">
<table id='table'>
<thead>
<tr>
<th>Course</th>
<th>Name</th>
<th>Price</th>
</tr>
</thead>
<tbody></tbody>
</table>
</p>
<p id="tab-3"></p>
</div>

最佳答案

您的代码的主要问题是您在 AJAX 请求成功完成后没有调用任何函数。您至少需要调用 drawTable() 来填充数据。

不过,您可以对代码进行多项改进。首先,删除 jsonp: 'callback'。这是默认值,并且在您提供 jsonpCallback 时也是多余的。然后,您还可以将 jsonpCallback 更改为 'drawTable'。这否定了对 success 处理函数的需要,并且意味着所有请求数据将直接提供给您的 drawTable() 函数。最后,与其在内存中创建 DOM 元素并在循环的每次迭代中附加,不如使用表格的所有 HTML 构建单个字符串并在完成时附加一次要快得多。

说了这么多,试试这个:

$(document).ready(function() {
$.ajax({
url: "http://learn.cf.ac.uk/webstudent/sem5tl/javascript/assignments/spanish.php",
dataType: 'jsonp',
jsonpCallback: 'drawTable'
});
});

function drawTable(data) {
var html = '';
for (var i = 0; i < data.length; i++) {
html += '<tr><td>' + data[i].course + '</td><td>' + data[i].name + '</td><td>' + data[i].price + '</td></tr>';
}
$('#table tbody').append(html);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<table id="table">
<thead>
<tr>
<th>Course</th>
<th>Name</th>
<th>Price</th>
</tr>
</thead>
<tbody></tbody>
</table>

请注意,我将此处显示的 HTML 缩减为仅相关部分。

关于javascript - 将 JSON 输出到 html 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41122990/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com