我想将html插入动态创建的表(使用数据表)。在document.ready()函数中,初始化数据表后,我把JQuery不能找到动态创建的元素
$("div.menuContainer").html('<select id="dropdownMenu1"> </select>');
它不起作用。但是,如果我在浏览器控制台加载页面后输入此行的作品。该怎么做人?
我想将html插入动态创建的表(使用数据表)。在document.ready()函数中,初始化数据表后,我把JQuery不能找到动态创建的元素
$("div.menuContainer").html('<select id="dropdownMenu1"> </select>');
它不起作用。但是,如果我在浏览器控制台加载页面后输入此行的作品。该怎么做人?
由于渲染DataTable的是异步操作(假设它也需要获取一些服务器端的数据),之后你不能只是执行代码表初始化:它仍未呈现,并且HTML结构尚未准备好。
而是使用DataTables API事件。在你的情况init
事件应该做的伎俩:
$('.table').on('init.dt', function() {
$("div.menuContainer").html('<select id="dropdownMenu1"> </select>');
});
或者你可以使用表配置initComplete
回调。
尝试访问静态父母和使用发现
$(use_parent_static_div_id).find(dynamic_element_id);
这里父指的父DIV动态地创建表
确定div.menuContainer存在?
试试这个动态插入后:
$("body").find("div.menuContainer").html('<select id="dropdownMenu1"></select>');
您应该尝试在父类上使用'delegate' method。
代表附加一个处理程序的选择现在或将来匹配,所有的元素 一个或多个事件的基础上,一组特定的根元素 。
你会发现这个答案有用: jQuery trigger delegation as soon as created
可以使用datatable
fnInitComplete
功能。
"fnInitComplete": function() {
$("div.menuContainer").html('<select id="dropdownMenu1"> </select>');
}
尝试使用活().. https://api.jquery.com/live/ –
尝试在$执行(窗口).load() – kapantzak
但我应该给它绑定什么事件?我只是想在创建时加载html。 – Paulie