我想将html插入到动态创建的表中(我正在使用数据表)。在document.ready()函数中,初始化数据表后我把
$("div.menuContainer").html('<select id="dropdownMenu1"> </select>');
它不起作用。但是如果我在加载页面后在浏览器控制台中输入这一行就可以了。该怎么办?
答案 0 :(得分:1)
由于DataTable的呈现是异步操作(假设它还需要获取一些服务器端数据),所以不能在表初始化之后执行代码:它仍然没有呈现并且HTML结构尚未就绪。
相反,请使用DataTables API事件。在您的情况下,init
事件应该起作用:
$('.table').on('init.dt', function() {
$("div.menuContainer").html('<select id="dropdownMenu1"> </select>');
});
或者您可以在表格配置中使用initComplete
回调。
答案 1 :(得分:0)
尝试访问静态父级并使用find
$(use_parent_static_div_id).find(dynamic_element_id);
此处,parent表示动态创建的表
的父div答案 2 :(得分:0)
你确定div.menuContainer存在吗?
动态插入后尝试此操作:
$("body").find("div.menuContainer").html('<select id="dropdownMenu1"></select>');
答案 3 :(得分:0)
您应该尝试在父类上使用'delegate' method。
Delegate为所有元素的一个或多个事件附加处理程序 根据特定集合,现在或将来匹配选择器 根元素。
您可能会发现此答案很有用: jQuery trigger delegation as soon as created
答案 4 :(得分:0)
您可以使用datatable
fnInitComplete
功能。
"fnInitComplete": function () {
$("div.menuContainer").html('<select id="dropdownMenu1"> </select>');
}