Firefox не будет отображать первую строку в динамически генерируемой таблице JSON - PullRequest
0 голосов
/ 10 ноября 2010

Используя приведенный ниже код 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>')

1 Ответ

3 голосов
/ 10 ноября 2010

Попробуйте (не уверен, что это сработает ..)

$('#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>")
        )
});
...