document.getElementById 导致 jquery 文档准备执行两次

document.getElementById causes jquery document ready to be executed twice

本文关键字:两次 执行 导致 getElementById jquery 文档 document      更新时间:2023-09-26

这段代码应该运行过来加载.php并获取一些xml格式的数据,解析它,然后将其加载到div中并显示它。它工作得很好,除了来自加载的数据.php显示两次。有没有另一种方法可以做到这一点,不会导致数据显示两次?我已经看到许多与导致此问题的文档就绪功能相关的帖子,但似乎无法弄清楚如何将任何解决方案应用于这种情况。我把它放在我页面上的头标签中。我真的很想保持这种格式,因为最终我会将一些数据发布到加载.php页面。

脚本

$(document).ready(function () {
    $.ajax({
        type: 'POST',
        url: 'load.php',
        success: loadReturn
    });
    function loadReturn(data) {
        var xml = $.parseXML(data);
        $xml = $(xml);
        $errorcode = $xml.find('errorcode');
        $data = $xml.find('data');
        document.getElementById("defaultcode").innerHTML = $data.text();
        $("#defaultcode").fadeIn(300);
    }
});
</script>

.HTML

<div id="defaultcode" style><h3>a title</h3><p>blah blah</p><h3>a title</h3><p>blah blah</p></div>

提前感谢您的时间。

首先,

我尝试将您的代码固定为正确的方式。 但我不认为代码是错误的。 应该是您从load.php发送了两个data标签。 请检查您退回的data

$(document).ready(function () {
    $.ajax({
        type: 'POST',
        url: 'load.php',
        success: loadReturn
    });
    function loadReturn(data) {
        // check your data
        console.log(data);
        // jQuery will parse for you automatically
        var $xml = $(data);
        var $errorcode = $xml.find('errorcode');
        var $data = $xml.find('data');
        // set html before fadeIn
        $("#defaultcode").html($data.text()).fadeIn(300);
    }
});