javascript - 如何在不修改整个内容的情况下更新innerHTML?

标签 javascript html ajax

我有一个 javascript (AJAX),它会定期发出 XMLHttpRequest 从 PHP 文件中获取一些数据,并将返回的数据附加

标记的 innerHTML。但是,每次将新内容添加到 block 中时,该段落的整个内容似乎都会重新加载:当我选择某些文本时,当数据更新时,选择会消失

代码如下:

<script>

    function requestChange(){
        setInterval(updateData, 2000);
    }

    function updateData(){
        var req = new XMLHttpRequest();
        var url = "content_provider.php";
        req.open("POST", url, true);
        req.send();

        req.onreadystatechange = function(){
            if(req.readyState == 4 && req.status == 200){
                var data = req.responseText;

                //updating the innerHTML content
                document.getElementById('data').innerHTML += data;
            }
        };
    }

</script>

<body onload="requestChange()">
        <p id="data"></p>
</body>

如何在innerHTML 静态中进行更改?

最佳答案

您可以尝试.insertAdjacentHTML()

这就是您在本例中所需要的,因为 insertAdjacentHTML 将结果节点插入到 DOM 树中的指定位置(第一个参数),但不会重新解析洞树。

document.getElementById('data').insertAdjacentHTML('beforeend', data);

关于javascript - 如何在不修改整个内容的情况下更新innerHTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47732284/

相关文章:

JavaScript 堆大小和 Chrome 增加

jquery - select2 使用 jquery 动态改变值

javascript - 尽管我的脚本完好无损,为什么我的 jquery 代码无法工作?

javascript - Node.js:使用 csvtojson 将 CSV 转换为 JSON 后,如何将 jsonObj 存储在全局变量中

javascript - XML header 导致服务器错误 500(即使被注释掉!)

javascript - 如何从动态创建的复选框javascript中创建复选框事件

html - 捕获高分辨率视频/图像 html5

javascript - 范围的 Modernizr 函数

javascript - 使用 HTML 表单值进行 AJAX/PHP MySqli 查询

javascript - 用 JavaScript 替换可以被社交媒体跟踪的标题