JQuery + создание радиокнопок для html из массива

0

Я создаю простую викторину для изучения javascript...

Вот простая модель того, как я хочу обрабатывать ответы на демо
Это работает, когда мой массив Qs & As находится в этом формате →

allButtons = [["Milk", "Butter", "Cheese"],["Water", "Beer", "Wine"]];

Я пытаюсь понять эту конкретную часть ->

$(allButtons[index]).each(function (i) {
answers += '<input type="radio" name="group1' + '" value="' + allButtons[index][i] + '">' + allButtons[index][i] + '<br>'
});

и примените его к этому примеру здесь
так как именно так изначально у меня установлены настройки Qs & As, где формат массива отличается →
allButtons = [[Questions...][PossibleAnswers...][Answers]]
Я дал ему уйти, но не успешно

Итак, как мне сделать то же самое с этим разным форматом массива вопросов и ответов?

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

Теги:
radio-button

2 ответа

0
Лучший ответ

Почему вы использовали index2 в $.each?

Также это должно быть [i] для индексирования, а не {i}

$("#up").on("click", function () {
    var answers = '';
    $(allButtons[1][index]).each(function (i) {
        answers += '<input type="radio" name="group1' + '" value="' + allButtons[1][index][i] + '">' + allButtons[1][index][i] + '<br>'
    });

    $("#answers").hide(); //required to show it slowly 
    $("#answers").html(answers); //show my answers 
    $("#answers").show('slow'); //slowly fade in Answers 

    index += 1;

});

Это то, что ты искал?

  • 0
    ткс я вижу свою ошибку сейчас дох! $(allButtons[1][index]**[index2]**).each(function (i) { answers += '<input type="radio" name="group1' + '" value="' + allButtons[1][index]**{i}** + '">' + allButtons[1][index][i] + '<br>' });
0

Только для моей справки и слегка связанных

пытаясь получить значение переключателя, который был выбран здесь...

http://jsfiddle.net/HumYx/2/ - это работает, но мне, возможно, придется изменить способ записи моих радиокнопок, чтобы получить нужный индекс, который нужно изменить

$(allButtons[1][index]).each(function (i) {
answers += '<input type="radio" name="group1' + '" value="' + allButtons[1][index][i] + '">' + allButtons[1][index][i] + '<br>'
});

изменил его на это, и он работает, это то, что я хочу

$(allButtons[1][index]).each(function (i) {
answers += '<input type="radio" name="group1' + '" value="' + i + '">' + allButtons[1][index][i] + '<br>'
});

http://jsfiddle.net/HumYx/3/ - обратите внимание, что a и b теперь работают так, как мы хотим, в этом формате, ever должен работать правильно, а c и d - из предыдущего

Ещё вопросы

Сообщество Overcoder
Наверх
Меню