通过AJAX加载页面时输出Javascript变量
我有一个测验,每个问题都使用AJAX重新加载到一个div中,而不是刷新整个页面 我有一个变量通过AJAX加载页面时输出Javascript变量,javascript,ajax,Javascript,Ajax,我有一个测验,每个问题都使用AJAX重新加载到一个div中,而不是刷新整个页面 我有一个变量quizScore,它保存用户的分数 最后一次按下按钮时,页面questionEndquick.php被加载到我的quizWrapper中 我想将分数输出到名为scoreout <span id="scoreOut"></span> 问题是,当通过AJAX加载页面时,这不会运行。因此,我尝试将其绑定到AJAX页面加载的成功: $( document ).ajaxComplete(
quizScore
,它保存用户的分数
最后一次按下按钮时,页面questionEndquick.php
被加载到我的quizWrapper
中
我想将分数输出到名为scoreout
<span id="scoreOut"></span>
问题是,当通过AJAX加载页面时,这不会运行。因此,我尝试将其绑定到AJAX页面加载的成功:
$( document ).ajaxComplete(function( event,request, settings ) {
document.getElementById("scoreout").value = quizScore;
});
因此,当打开该脚本的页面运行时,它应该运行并输出分数,但它似乎不起作用
您可以在这里看到该站点:
。value
用于表单元素,如
标记。对于div、span或其他类型的HTML元素,应该使用.innerHTML
document.getElementById("scoreout").innerHTML = quizScore;
至于计时问题,您只需要在scoreout
DOM对象位于页面中并且quizScore
处于其当前值之后执行此语句。这不会将quizScore
的值永久绑定到DOM元素,它只是值的一次性传输。您需要在任何时候重新运行此语句以显示新更改的分数
如果您是通过ajax调用更新此分数,您可以在任何ajax调用完成后使用
.ajaxComplete()
更新分数,也可以在计算新更新的分数后立即更新代码中的分数显示(无论代码中位于何处)。我查看了您的网站。为了使其正常工作,您应该更改nextQuestion
函数并添加if(buttonID…
)如下:
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("quizWrapper").innerHTML=xmlhttp.responseText;
if (buttonID == "question_endQuiz") {
document.getElementById("scoreOut").innerHTML = quizScore;
}
}
它也应该是“scoreOut”而不是“scoreOut”,因为javascript是区分大小写的
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("quizWrapper").innerHTML=xmlhttp.responseText;
if (buttonID == "question_endQuiz") {
document.getElementById("scoreOut").innerHTML = quizScore;
}
}