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

时间:2013-10-04 03:26:28

标签: javascript jquery post

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

SCRIPT     

$(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>

提前感谢您的时间。

1 个答案:

答案 0 :(得分:0)

首先,我尝试以正确的方式修复您的代码。但我不认为代码是错误的。应该是您从data发送了两个load.php代码。请检查您返回的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);
    }
});