使用下面的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>')
答案 0 :(得分:3)
试试这个(不确定它会起作用..)
$('#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>")
)
});