Javascript - 隐藏的数学答案。

时间:2012-04-12 08:24:45

标签: javascript html

下面的脚本生成随机数,并计算答案。

接下来就是我希望得到HIDDEN的答案并在那里放置一个文本区域。然后你必须输入一个答案,当答案是正确的时,它应该使答案变为绿色。

我知道这是可能的,但我在互联网上搜索没有成功,所以我反而创建了一个问题。

这是脚本:

<div id="breuken"></div>

$(function () {
    var number = document.getElementById("breuken");
    var i = 0;
    for (i = 1; i <= 10; i++) {
        var sRandom = Math.floor(Math.random() * 10);
        var fRandom = Math.floor(sRandom + Math.random() * (10 - sRandom));
        var calc = Math.abs(fRandom - sRandom);
        number.innerHTML += "" + fRandom + " - " + sRandom + " = " + calc + "<br />";
    }
    number.innerHTML;
});

3 个答案:

答案 0 :(得分:1)

试试这个http://jsfiddle.net/r4QTQ/

它会进行基本的绿色变化,但应足以让您修改并完全按照自己的意愿行事。

答案 1 :(得分:1)

创建了这个jQuery demo ,如果您使用的是jQuery,它可能会帮助您朝着正确的方向前进。

var $questions = $('<div />').attr('id', 'questions');
for (var i = 1; i <= 3; i++) {

    var question = "Question " + i + "?";
    var answer = i;

    $questions.append(
        $('<div />')
            .attr('id', 'question' + i)
            .addClass('question')
            .append(
                $('<span />').text(question)
            )
            .append(
                $('<input type="text" />')
                    .addClass('answer')
                    .data('answer', answer)
            )
    );
}
$('#container').empty().append($questions);

希望它有所帮助!

答案 2 :(得分:0)

这个答案几乎与@ gillesc相同,但是使用jQuery来完成繁重的工作,如果掌握了它,你应该使用它。 (并且更短)

Javascript代码:jsFiddle

$(function() {
    var checkAnswer = function(elem) {
        if ($(elem).data('calc') == $(elem).val()) {
            $(elem).css('background-color', 'green');
        } else {
            $(elem).css('background-color', 'white');
        }
    };
    var div = $('#breuken');

    for (var i = 0; i < 10; i++) {
        var sRandom = Math.floor(Math.random() * 10);
        var fRandom = Math.floor(sRandom + Math.random() * (10 - sRandom));
        var calc = Math.abs(fRandom - sRandom);

        var qa = $('<span>' + fRandom + ' - ' + sRandom + 
            ' = <input type="text"></span><br />');
        qa.find('input').change(function() {
            checkAnswer(this);
        }).data('calc', calc);
       div.append(qa);
    }
});