2015-05-20 25 views
1

我试图做一个按钮,随机设置一个选择选项,当点击。我想不出什么,我虽然做错了......在按钮中使用math.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较大的脚本的一小部分。

我打算稍后添加更多选择,但是我希望在花时间讨论这些代码之前弄清楚代码。

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

+0

改变你无法设置像这样的选择的innerHTML。 – Drakes

回答

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。您不能在元素的value上设置innerHTML

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

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

+0

完美运作! TY! – GoGoCharlie

0

你不能用innerHTML这样的改变select

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

你必须,而不是改变值,并应用像这样

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

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