0

这是我的jQuery代码

$("document").ready(function() {
        $.getJSON("http://bluewingholidays.com/results.json", function(data) {
            $("#div-my-table").text("<table>");
            $.each(data, function(i, item) {
                $("#div-my-table").append("<tr><td>" + item.EncoderName + "</td><td>" + item.EncoderStatus + "</td></tr>");
            });
            $("#div-my-table").append("</table>");
        });
    });

我想使用 html 表格将数据显示到网络中

<table id="div-my-table">
    <tr><td></td></tr>
     <tr><td></td></tr>
     <tr><td></td></tr>
</table>

但什么也没发生?

4

4 回答 4

3

我立即看到的一个问题是您需要更改$("document")$(document). 您想传递文档对象而不是选择器。

$(document).ready(function(){...
于 2012-12-10T19:13:02.597 回答
1

append不会</table>在 jQuery 中附加一些任意文本(尤其是 not )!它附加了一个元素......您应该使用这样的代码:

// Content will contain the HTML code of your new table
var content = "";

$.each(data, function(i, item) {
    content += "<tr><td>" + item.EncoderName + "</td><td>" + item.EncoderStatus + "</td></tr>";
});   

// Set the HTML of your table to this new content
$("#div-my-table").html(content);
于 2012-12-10T19:21:43.323 回答
1

这里有很多不同的问题。

首先,$("document").ready(应该是$(document).ready(。丢失引号。您想传递document对象,而不是选择器。

其次,如果此代码未在bluewingholidays.com. 这就是所谓的同源策略

第三,这不是在 jQuery 中添加元素的方式。(注意:.text用于更改元素的文本,如果您将其发送为 HTML,它将被转义。)

当您在 jQuery 中附加 HTML 时,您不会先附加打开标记,然后附加关闭标记。jQuery 希望您发送完整的 HTML,而不是片段。

$(document).ready(function() {
    // This will only work if this code is on bluewingholidays.com
    $.getJSON("http://bluewingholidays.com/results.json", function(data) {
        $("#div-my-table").empty(); // this is already a table, so let's empty it
        $.each(data, function(i, item) {
            // You're appending HTML elements to other HTML elements
            // You are not appending text in the way you think
            $("#div-my-table").append("<tr><td>" + item.EncoderName + "</td><td>" + item.EncoderStatus + "</td></tr>");
        });
        // You append HTML elements, not strings, so you don't need this line
        //$("#div-my-table").append("</table>");
    });
});
于 2012-12-10T19:31:34.437 回答
0

我假设您的表已经存在,所以这应该有效:

<table id="div-my-table">    </table>

并在您的脚本处理返回的 JSON:

$.each(data.Properties, function(i, item) {
    $("#div-my-table").append("<tr><td>" + item.id + ":" + item.title +  "</td><td>" + item.price + "</td></tr>");
});
于 2012-12-10T20:12:50.543 回答