更改正文innerHTML的正确方式

Proper way to change body innerHTML

本文关键字:方式 innerHTML 正文      更新时间:2023-09-26

我正在head中做一些jQuery的工作。在文件的末尾,我将正文更改为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函数都不起作用。你知道为什么以及如何修复它吗?

注意:如果"这是可能的",我更喜欢用上面的方法将元素添加到主体中

这就是我在head(它是datatables.net)中为这段代码中的examle所做的,在更改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在更改正文innerHTML后执行所有准备代码。