使用jQuery和HTML分析XML数据

时间:2009-02-04 22:02:10

标签: javascript jquery html xml

我有一个包含问题列表的XML文件。当HTML页面加载并加载答案作为单选按钮时,我想加载列表中的第一个问题。当选择其中一个单选按钮时,我想显示结果以及继续按钮。 continue按钮将转到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");
            });
        });
    });
}

但是,问题中的内容永远不会加载到元素中。当我去获取文档中的第一个元素时,它看起来像是挂起。我的猜测是没有重载将对象注入函数。

我说错了吗?任何人有任何快速资源,显示一个基本的测验类似的例子,如我想要生成?

更新:我已将代码更新为以下内容,它似乎陷入了属性属性:

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");
        });
    });
}

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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。你什么时候打电话给这个功能。如果它在文档加载之后,那么你真的不需要它。