更改 body innerHTML 的正确方法
Proper way to change body innerHTML
我正在脑子里做一些 jQuery 事情。在文件末尾,我像这样更改 body innerHTML:
document.getElementsByTagName('body')[0].innerHTML='<div>some string</div><div>some string</div><div>some string</div>'+document.getElementsByTagName('body')[0].innerHTML;
这样做之后,元素将被添加到正文中,但 jquery 或 javascript 函数的 none 起作用。你知道为什么以及如何解决它吗?
注意:如果"it is possible"我更喜欢用上面的方法给body添加元素
这就是我在头脑中所做的(它是 datatables.net),例如在更改 innerHTML 之后在这段代码中 $('#search').keyup
将无法工作......
<script type='text/javascript'>
//<![CDATA[
$(window).load(function() {
$(document).ready(function() {
oTable = $('#example').DataTable({
"iDisplayLength": 10,
"aaSorting": [
[1, 'asc']
],
responsive: true
});
$('#search').keyup(function() {
oTable.search($(this).val()).draw();
})
});
}); //]]>
</script>
编辑:问题已解决!
对于动态添加的对象,您将无法简单地执行以下操作:
$("#object").click(function(){
});
但是,您需要使用:
$(document).on("click", "#object", function(){
});
这样就可以触发动态添加对象了
我最后做了两处修改来完成这项工作:
1 将所有脚本放在文件末尾附近
2 更改body innerHTML后执行所有准备代码。
我正在脑子里做一些 jQuery 事情。在文件末尾,我像这样更改 body innerHTML:
document.getElementsByTagName('body')[0].innerHTML='<div>some string</div><div>some string</div><div>some string</div>'+document.getElementsByTagName('body')[0].innerHTML;
这样做之后,元素将被添加到正文中,但 jquery 或 javascript 函数的 none 起作用。你知道为什么以及如何解决它吗?
注意:如果"it is possible"我更喜欢用上面的方法给body添加元素
这就是我在头脑中所做的(它是 datatables.net),例如在更改 innerHTML 之后在这段代码中 $('#search').keyup
将无法工作......
<script type='text/javascript'>
//<![CDATA[
$(window).load(function() {
$(document).ready(function() {
oTable = $('#example').DataTable({
"iDisplayLength": 10,
"aaSorting": [
[1, 'asc']
],
responsive: true
});
$('#search').keyup(function() {
oTable.search($(this).val()).draw();
})
});
}); //]]>
</script>
编辑:问题已解决!
对于动态添加的对象,您将无法简单地执行以下操作:
$("#object").click(function(){
});
但是,您需要使用:
$(document).on("click", "#object", function(){
});
这样就可以触发动态添加对象了
我最后做了两处修改来完成这项工作: 1 将所有脚本放在文件末尾附近 2 更改body innerHTML后执行所有准备代码。