我试图制作一个按钮,在点击时随机设置一个选项。我无法弄清楚我做错了什么......
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 :(得分: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();