【问题标题】:loop in answers with javascript and jQuery [closed]使用 javascript 和 jQuery 循环回答 [关闭]
【发布时间】:2013-04-07 09:34:49
【问题描述】:

这是我的代码:

$(document).ready(function () {
    $("input").focus(function () {
        $(this).css('outline-color', '#559FFF');
        $(this).blur(function () {
            $(this).css("outline-color", "#FF0000");
        });
    });
    $("input").click(function () {
        var value = $(this).val(function () {
            $(this).html("");
        });
    });
    $(".awesome").click(function () {
        var toStore = $("input[name=name]").val();
        if (!/^[A-Za-z]+ [A-Za-z]+$/.test(toStore)) {
            alert("You Must Put a Valid Name");
        } else {
            $("#contain").children().fadeOut(1000);
            $("#contain").delay(1000).queue(function () {
                $("#contain").append("<h1>Welcome to My Quiz : " + toStore + "</br>" +
                    "Youll Get 10 Questions To Answer </br> " +
                    "Here Is the First One:Who is Prime Minister of the United Kingdom? </h1>");

                var allQuestions = {
                    outquestions:{
                        question1 : {    quest: "Who is Prime Minister of the United Kingdom?",
                            choices: ["David Cameron","Gordon Brown","Winston Churchill","Tony Blair"],
                            correctAnswer: "David Cameron"},
                        question2 : {    quest: "whats dad name?",
                            choices: ["David ","Gordon ","Winston ","Tony "],
                            correctAnswer: "David"}
                    },
                    correctAnswers: 0
                };

                var outquestions = allQuestions["outquestions"];
                for (var question in outquestions) {
                    $("#contain").append("<p>(outquestions[question][quest]</p>");
                    for (var choice in outquestions[question]["choices"]) {
                        $("h1").append("<form><input type='radio' name=question value=choice></form>");
                    }
                }
                $("#contain").append("<form><input type='submit' value='submit'></form>");
                $("#contain").on("click", "input[name=submit]", function () {
                });

            });
        }
    });
});

我希望本节循环遍历问题并写在:

var outquestions = allQuestions["outquestions"];
                    for (var question in outquestions) {
                        $("#contain").append("<p>(outquestions[question][quest]</p>");
                        for (var choice in outquestions[question]["choices"]) {
                            $("h1").append("<form><input type='radio' name=question value=choice></form>");
                        }
                    }
                    $("#contain").append("<form><input type='submit' value='submit'></form>");

之后,我想要所有已循环的问题的答案任何给定时间显示单选按钮和单选按钮按钮的值,我得到你在图片中看到的内容。 这里有什么问题?

【问题讨论】:

  • 代码中有很多问题。无法对基于图像的代码进行故障排除。提供 html 并在 jsfiddle.net 中创建一个演示。提供的图片毫无价值
  • 是的,我知道我的编码并不完美,并且我正在努力做到这一点:)
  • 这样的测验很容易作弊,因为你无法阻止别人查看 JavaScript。

标签: javascript jquery object loops


【解决方案1】:

试试这样的:

var outquestions = allQuestions["outquestions"];
    for (var question in outquestions) {
        $("#contain").append("<p>(outquestions[question][quest]</p>");
        for (var choice in outquestions[question]["choices"]) {
            $("#contain").append("<h1><input type='radio' name=question value=choice></h1>");
        }
    }
    $("#contain").append("<input type='submit' value='submit'>");
    $("#contain").on("click", "input[name=submit]", function () {});

我没有测试上面的代码,但它应该把你的选项放在你的问题之间。

【讨论】:

  • 还将以下行 $("#contain").append("

    (outquestions[question][quest]

    "); 更改为此 $("#contain" ).append("

    (outquestions[question]['quest']

    ");
【解决方案2】:

我为你们做了一些改变,我在这里的一些想法是我的代码的结果:

var allQuestions = {
                    outquestions:{
                        question1 : {    quest: "Who is Prime Minister of the United Kingdom?",
                            choices: ["David Cameron","Gordon Brown","Winston Churchill","Tony Blair"],
                            correctAnswer: "David Cameron"}
                    },
                    correctAnswers: 0
                };

                var outquestions = allQuestions["outquestions"];
                for (var question in outquestions) {
                    $("#contain").append("<h1>" + outquestions[question]['quest'] + "</h1>");
                    for (var choice in outquestions[question]["choices"]) {
                        $("#contain").append("<p><input type='radio' name=question value=choice>" +outquestions[question]["choices"][choice] + "</p>");
                    }
                }

感谢大家的帮助。

【讨论】:

    猜你喜欢
    • 2011-07-30
    • 1970-01-01
    • 2023-02-26
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多