Пейджинг через XML-данные с использованием jQuery и HTML - PullRequest
1 голос
/ 05 февраля 2009

У меня есть 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");
            });
        });
    });
}

Однако содержание вопроса никогда не загружается в элемент. Похоже, что он зависает, когда я иду, чтобы получить первый элемент в документе. Я предполагаю, что нет перегрузки, чтобы ввести объект в функцию.

Я прав? У кого-нибудь есть какие-нибудь быстрые ресурсы, которые показывают базовый пример, похожий на викторину, который я собираюсь создать?

ОБНОВЛЕНИЕ: я обновил код до следующего, и он, кажется, попал в свойство атрибута:

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 Ответ

1 голос
/ 05 февраля 2009

функция 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 в вызов функции. Когда вы вызываете функцию. если это после загрузки документа, то вам это не нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...