我正在将jQuery中的数据填充到多个html表中,但第二行之后的所有内容都在表外打印。
我在这里创造了一个小提琴来展示发生了什么
https://jsfiddle.net/s81zb7ga/
我不明白为什么它一直在表外打印。
我的循环代码如下:
var title = '';
$('#results_credentials').html("");
for(var i in data) {
var m = '';
var end_of_tbl = '</tbody>';
end_of_tbl += '</table>';
end_of_tbl += '</div>';
end_of_tbl += '</div>';
end_of_tbl += '</div>';
if(title !== data[i].title) {
if(title !== "") {
m += end_of_tbl;
}
title = data[i].title;
m += '<div class="panel-collapse box box-warning">';
m += '<div class="box-header">';
m += '<h3 class="box-title">';
m += '<a href="#box_expand_' + data[i].sequence + '" data-toggle="collapse" id="credential_title_' + data[i].sequence + '">' + data[i].title + '</a>';
m += '</h3>';
m += '</div><!-- /.box-header -->';
m += '<div class="box-body panel-collapse collapse2" id="box_expand_' + data[i].sequence + '">';
m += '<div class="table-responsive">';
m += '<table class="table table-bordered table-hover">';
m += '<thead>';
m += '<tr>';
m += '<th class="credential_group credential_group_' + data[i].title.replace(' ', '_') + '">Group</th>';
m += '<th>Note</th>';
m += '<th>Username</th>';
m += '<th>Password</th>';
m += '<th>Updated</th>';
m += '<th colspan="2">Actions</th>';
m += '</tr>';
m += '</thead>';
m += '<tbody>';
}
m += '<tr id="credential_row_' + data[i].sequence + '">';
m += '<td colspan="7">test</td>';
m += '</tr>';
$('#results_credentials').append(m);
}
2条答案
按热度按时间xt0899hw1#
根据epascarello的评论,原来这些标签是被浏览器自动关闭的。
因此,通过将
var m = '';
和$('#results_credentials').append(m);
移动到for循环之外,它一次追加整个表和数据,因此不会破坏HTML。mklgxw1f2#
因此,还有其他方法可以使用jQuery生成动态内容。你可以按照下面的一些: