在尝试动态创建HTML table
时,我似乎误解了jQuery的append
函数。
我有div
作为容器:
<div id="tablecontainer"></div>
在我的JavaScript中,我似乎正确地在我的容器div中放置一个空的table
:
$(document).ready(function() {
var $tableContainer = $('#tablecontainer'),
$table = $tableContainer.append('<table></table>'),
$thead = $table.append('<thead></thead>');
});
但是,当我尝试将thead
标记放在table
内时,它似乎是将它放在表格之外,而不是嵌套在表格内
以下是Chrome的开发工具中的内容:
这就是我所期待的:
<div id="tablecontainer">
<table>
<thead>
</thead
</table>
</div>
Here是一个jsbin。
对这里发生的事情有任何想法吗?
答案 0 :(得分:2)
append
不会返回您刚刚追加的元素,因此:
$table = $tableContainer.append('<table></table>')
$table
实际上仍指向$tableContainer
。
有几种解决方案,但您可以使用$tableContainer.find('table')
来获得正确的参考。
答案 1 :(得分:1)
实际上$tableContainer
和$table
在这种情况下是相同的。因为append()
方法返回元素本身。您可以像find()
一样使用。
var $tableContainer = $('#tablecontainer'),
$table = $tableContainer.append('<table></table>'),
$thead = $table.find('table').append('<thead></thead>');
答案 2 :(得分:0)
var mytable = $('<table/>', {
class: 'print_table '
}).append(
$('<thead/>'),
$('<tfoot/>'),
$('<tbody/>')
);
//好吧,并在 thead
中添加一些内容$("thead", mytable).append(TitleCell);