AppendChild只有html

时间:2014-02-07 00:14:27

标签: javascript jquery

我想将Html作为孩子附加到Element,我试过:

$.each(data, function(i, field){
    var tbody = document.getElementsByTagName('tbody')[0];
    tbody.appendChild('<tr><td>'+ field.name +'</td><td>' + field.vorname + '</td><td>' + field.geburtsdatum + '</td><td>' + field.strasse + '</td><td>' + field.plz + '</td></tr>');
});

但不知怎的,我得到了这个错误:

 Uncaught NotFoundError: Failed to execute 'appendChild' on 'Node': The new child element is null. 

我该如何解决这个问题?感谢

1 个答案:

答案 0 :(得分:3)

appendChild()以节点为参数,尝试jQuery的append()而不是

var $tbody = $('tbody').eq(0);
$.each(data, function (i, field) {
    $tbody.append('<tr><td>' + field.name + '</td><td>' + field.vorname + '</td><td>' + field.geburtsdatum + '</td><td>' + field.strasse + '</td><td>' + field.plz + '</td></tr>');
});

正如Json所说,最好首先创建html然后追加它,所以试试

var array = $.map(data, function (field, i) {
    return '<tr><td>' + field.name + '</td><td>' + field.vorname + '</td><td>' + field.geburtsdatum + '</td><td>' + field.strasse + '</td><td>' + field.plz + '</td></tr>';
});

$('tbody').eq(0).append(array.join(''));