jquery函数在javascript中不起作用,但在它之外工作得很好

时间:2012-06-12 19:00:12

标签: javascript jquery ajax jquery-load

我有一个包含jQuery和script.js文件的php页面。当我在php文件中放入以下函数时,函数会被执行并按预期工作:

<script>
    $('#scoreboard-overview').load('getusers.php?q=<?php echo $NewString; ?>').fadeIn("slow"); 
</script>

它做什么?好吧,它在我的php文件中重新加载id为scoreboard-overview的div,其中包含来自外部php文件getusers.php的数据

这一切都很有效。

现在在script.js文件中(在php页面的末尾,</body>之前加载),我还想在updatecore.php文件完成后通过更新数据库重新加载这个div表单。我有这个代码:

$.ajax({
    type: "POST",
    data: $("#form").serialize(),
    cache: false,
    url: "updatescore.php",
    success: function() { //reload overview
        $('#scoreboard-overview').load('getusers.php?q=' + document.getElementById('str') + '').fadeIn("slow");
    }
});​

因此,在成功之后它应该执行jQuery函数:

function () { //reload overview
    $('#scoreboard-overview').load('getusers.php?q='+document.getElementById('str')+'').fadeIn("slow");                  
}

我验证了代码。使用updatescore.php更新数据库,但在此之后(成功后),div不会刷新。所以代码的这个成功部分是行不通的。我做错了什么?

ps:'+document.getElementById('str')+'应该给我与echo $NewString;相同的结果,只取自ID为str的div(因为php在js文件中不起作用?)

1 个答案:

答案 0 :(得分:2)

document.getElementById('str')将返回带有'str'id的HTML元素,而不是元素中的文本。我不确定这个元素究竟是什么样子,但你可能会做document.getElementById('str').textContent

之类的事情