Firefox 不会显示动态生成的 JSON 表中的第一行

发布于 2024-10-01 11:21:15 字数 1048 浏览 3 评论 0原文

使用下面的 jQuery 代码,我尝试使用 JSON 对象来创建一个填充所有 JSON 数据的新表。下面的代码在除 Firefox 之外的所有浏览器中都能完美运行。在 Firefox 中,代码确实创建了表格,但它始终跳过第一行。 (所有剩余的行在 FF 中完美显示。)更准确地说,在“each”方法的第一次迭代期间,代码确实为第一行创建了标签以及该标签的 id 属性。但是,没有任何内部 HTML(元素和文本)附加到该元素。我不明白为什么代码在每个浏览器(包括 IE8)中都有效,但在 FF 上无效。有人可以提供一些建议吗?

$('#mydiv').append('<table><thead><th>Activity</th><th>Category</th><th>Deadline</th><th>Status</th></thead><tbody>')

$(json).each(function(i) {
    $('#mydiv tbody')
        .append("<tr id='" + json[i].id + "'></tr>")
        .children("'#" + json[i].id + "'")
            .append("<td class='activity'>"  + json[i].activity + "</td>")
            .append("<td class='category'>"  + json[i].category  + "</td>")
            .append("<td class='deadline'>"  + json[i].deadline  + "</td>")
            .append("<td class='status'>"    + json[i].status    + "</td>")
})
$('#mydiv').append('</tbody></table>')

Using the jQuery code below, I'm trying to take a JSON object to create a new table populated with all the JSON data. The code below works perfectly in every browser except for Firefox. In Firefox, the code does create the table, but it consistently skips over the first row. (All the remaining rows display perfectly in FF.) More precisely, during the first iteration of the "each" method, the code does create the tags for the first row along with an id attribute for that tag. However, none of the inner HTML (the elements and text) is appended to the element. I can't understand why the code works in every browser (including IE8) but not FF. Can anyone offer some suggestions?

$('#mydiv').append('<table><thead><th>Activity</th><th>Category</th><th>Deadline</th><th>Status</th></thead><tbody>')

$(json).each(function(i) {
    $('#mydiv tbody')
        .append("<tr id='" + json[i].id + "'></tr>")
        .children("'#" + json[i].id + "'")
            .append("<td class='activity'>"  + json[i].activity + "</td>")
            .append("<td class='category'>"  + json[i].category  + "</td>")
            .append("<td class='deadline'>"  + json[i].deadline  + "</td>")
            .append("<td class='status'>"    + json[i].status    + "</td>")
})
$('#mydiv').append('</tbody></table>')

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夕嗳→ 2024-10-08 11:21:15

试试这个(不确定它会起作用..)

$('#mydiv').append('<table><thead><th>Activity</th><th>Category</th><th>Deadline</th><th>Status</th></thead><tbody></tbody></table>')

$(json).each(function(i) {
    $('#mydiv tbody')
        .append(
            $("<tr />").attr("id", json[i].id)
            .append("<td class='activity'>"  + json[i].activity + "</td>")
            .append("<td class='category'>"  + json[i].category  + "</td>")
            .append("<td class='deadline'>"  + json[i].deadline  + "</td>")
            .append("<td class='status'>"    + json[i].status    + "</td>")
        )
});

Try this (not sure it'll work..)

$('#mydiv').append('<table><thead><th>Activity</th><th>Category</th><th>Deadline</th><th>Status</th></thead><tbody></tbody></table>')

$(json).each(function(i) {
    $('#mydiv tbody')
        .append(
            $("<tr />").attr("id", json[i].id)
            .append("<td class='activity'>"  + json[i].activity + "</td>")
            .append("<td class='category'>"  + json[i].category  + "</td>")
            .append("<td class='deadline'>"  + json[i].deadline  + "</td>")
            .append("<td class='status'>"    + json[i].status    + "</td>")
        )
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文