使用按钮中的math.random设置选择选项?

时间:2015-05-20 23:52:48

标签: javascript jquery select button random

我试图制作一个按钮,在点击时随机设置一个选项。我无法弄清楚我做错了什么......

http://jsfiddle.net/GamerGorman20/nw8Ln6ha/25/

$('#rand').click(

        function() {
            randNum();
            var num = "";
            document.getElementById("mySelect").value.innerHTML = favWebComics[num];
    });

    var randNum = function() {
        num = Math.round(Math.random() * 2) + 1;
        return num;
    };

显示的代码只是链接的jsfiddle中较大脚本的一小部分。

我计划稍后添加更多选项,但我想在花时间在那些之前弄清楚代码。

值得一提的是,我对此的理解非常有限,所以保持简单的建议非常受欢迎。

2 个答案:

答案 0 :(得分:1)

完成后,您需要更改的代码的相关部分将如下所示(请参阅更新的jsfiddle):

$('#rand').click(function() {
    var $select = document.getElementById('mySelect'),
        max = $select.getElementsByTagName('option').length - 1;

    $select.selectedIndex = randNum(1, max);
    myFunction();
});

var randNum = function(min, max) {
    num = Math.floor(Math.random() * (max - min + 1)) + min;
    return num;
};

var myFunction = function() {
    var x = document.getElementById("mySelect").value;

    document.getElementById("demo").innerHTML = "You selected: " + x;
    document.getElementById("image").innerHTML = favWebComics[x][1];
    document.getElementById("web").innerHTML = favWebComics[x][0];
    document.getElementById("tags").innerHTML = "Tags: " + favWebComics[x][2];
};

我没有改变代码的样式或结构,只是改变了一些基本属性。

问题在于innerHTML。您无法在元素的innerHTML上设置value

相反,你可以做的是生成一个随机数,并将selectedIndex元素的select属性设置为该随机数。

然后,您将调用显示图像的功能以及您需要的功能。

答案 1 :(得分:0)

您无法像select那样更改innerHTML

document.getElementById("mySelect").value.innerHTML = favWebComics[num];

您必须改为更改值,然后应用更改

$("#mySelect").val("New text").change();

$("#mySelect").prop('selectedIndex', index).change();