通过AJAX加载页面时输出Javascript变量
Output Javascript variable when page loads through AJAX
我有一个测验,其中每个问题都使用AJAX在一个div中重新加载,而不是刷新整个页面。
我有一个变量quizScore
,它保存了用户的分数。
按下最后一个按钮,页面questionendQuiz.php
被加载到我的quizWrapper
中。
我想将分数输出到一个名为scoreout
的span
<span id="scoreOut"></span>
我尝试使用getElementById
document.getElementById("scoreout").value = quizScore;
问题是,当通过AJAX加载页面时,这不会运行。因此,我尝试将其绑定到AJAX页面加载的成功:
$( document ).ajaxComplete(function( event,request, settings ) {
document.getElementById("scoreout").value = quizScore;
});
因此,当页面上的脚本运行时,它应该运行并输出分数,但它似乎不工作。
您可以在这里看到网站:http://fh80.student.eda.kent.ac.uk/fyp-assets/quiz/quiz.php
.value
用于<input>
标签等表单元素。对于div或span或其他类型的HTML元素,您应该使用.innerHTML
。
document.getElementById("scoreout").innerHTML = quizScore;
至于时间问题,您只需要在scoreout
DOM对象在页面中并且quizScore
处于其当前值之后执行此语句。这不会永久地将quizScore
的值绑定到DOM元素,它只是一次性地传输该值。如果您想要显示新更改的分数,则必须在任何时候重新运行此语句。
如果你通过ajax调用更新这个分数,你可以使用.ajaxComplete()
,因为你正在做任何ajax调用完成后更新分数,或者你可以在你计算新更新的分数后在你的代码中更新分数显示(无论这是在你的代码)。
我看了你的网站。为了使其工作,您应该更改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是区分大小写的。
- 以字符串形式输出Javascript中的日期
- 使用PHP输出JavaScript时会出现神秘的换行符
- 如何从PHP文件输出javascript文件,该文件可以从脚本包含标记中引用
- XSLT:在元素标记中输出Javascript
- 如何在gump工作流中同时在独立文件和依赖文件中输出javascript
- 当从代码后台输出Javascript时,如何处理换行符
- 以XSL输出Javascript文档.write
- PHP 文件输出 javascript 代码本身而不是运行
- 为什么我得到未定义的输出Javascript
- ASP.Net 4.0 中,IE 11 中未输出 JavaScript
- Maven GWT - 仅输出 Javascript 文件
- 在不同的变量上输出 JavaScript 函数
- 如何在 html 中输出 javascript 变量的值
- 如何输出JavaScript对象中的元素
- 显示三个文本框之和的输出-Javascript
- jQuery函数中正确输出JavaScript变量
- 构建,修改,输出Javascript数组
- 使用Haxe输出JavaScript
- Javascript和HTML,不输出Javascript函数
- Php _gettext输出javascript代码