我有一个包含问题列表的 XML 文件。我想在加载 HTML 页面时加载列表中的第一个问题,并将答案作为单选按钮加载。当选择其中一个单选按钮时,我想显示结果以及继续按钮。继续按钮将转到 XML 文件中的第二个元素。
到目前为止,我已经得到以下内容:
function generateQuestion(i) {
$(document).ready(function() {
$.get('quiz.xml', function(d) {
alert('Loaded XML');
$(d).find('question').get(0, function() {
alert('Loaded Question');
var $question = $(this);
var questionContent = $question.attr("content");
$(questionContent).appendTo("#quizQuestion");
});
});
});
}
但是,问题的内容永远不会加载到元素中。当我去获取文档中的第一个元素时,它看起来挂起。我的猜测是没有重载将对象注入(inject)到函数中。
我说得对吗?有人有任何快速资源来显示我想要生成的类似基本测验的示例吗?
更新:我已将代码更新为以下内容,它似乎被属性属性捕获:
function generateQuestion(i) {
$(document).ready(function() {
$.get('quiz.xml', function(d) {
var $question = $(d).find('question').get(i);
var questionContent = $question.attr('content');
alert(questionContent);
$(questionContent).appendTo("#quizQuestion");
});
});
}
有什么想法吗?
最佳答案
get() 函数返回非包装的 set 元素,在本例中它将是 xml 元素。
$.get('quiz.xml', function(d) {
var question = $(d).find('question :eq(0)');
var questionContent = question.attr('content');
alert(questionContent);
$(questionContent).appendTo("#quizQuestion");
});
另一种选择是重新包装对象
$.get('quiz.xml', function(d) {
var question = $(d).find('question').get(0);
var questionContent = $(question).attr('content');
alert(questionContent);
$(questionContent).appendTo("#quizQuestion");
});
另外,我不确定为什么你在函数调用中包含 $(document).ready 。你什么时候调用这个函数。如果是在文档加载之后,那么您实际上并不需要它。
关于javascript - 使用 jQuery 和 HTML 对 XML 数据进行分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/513567/