我想將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