2013-05-25 68 views
1

请有人帮忙。我试图在javascript中创建一个基本按钮,单击时从数组中随机选取一个值并将其显示在屏幕上,每次单击该按钮时,都应该从数组中选取一个新项目。我知道如何写阵列javascript按钮从数组中挑选随机物品

var myarray = new Array("item1", "item2", "item3"); 

我只是不知道如何做按钮部分。任何帮助都会很棒。我知道这可能是更容易做到这一点jQuery的,但我真的很想让我的头一轮的JavaScript之前,我解决的jQuery(请温柔我是新来这个笑)

回答

2

你可以叫上按一下按钮的功能打印这样

<input type="button" id="btnSearch" value="Search" onclick="GetValue();" /> 
<p id="message" ></p> 

JS

function GetValue() 
{ 
    var myarray= new Array("item1","item2","item3"); 
    var random = myarray[Math.floor(Math.random() * myarray.length)]; 
    //alert(random); 
    document.getElementById("message").innerHTML=random; 
} 

JS Fiddle Demo

+0

非常感谢所有贡献了答案的人。他们对我理解这件事情有很大的帮助。再次感谢! – user2419017

0

使用JavaScript生成一个随机的随机函数数组的上限和下限之间的数字。然后使用

myarray[Math.round(Math.random() * (myarray.length - 1))] 

访问数组中的随机值。

您可以使用this链接查看热来产生一个最小和最大数之间的随机数。 (你的情况min总是0)。

+0

谢谢,我将如何编写按钮的代码来触发函数是这样的 user2419017

+0

是的,这将工作 – Guanxi

0

值试试这个: HTML:

<input type="button" click="randomize()" value="Click me" /> 

个JS:

function randomize(){ 
    var myarray = new Array("item1", "item2", "item3"); 
    var randomId = Math.floor((Math.random()*myarray.length)); 
    var randomItem = myarray[randomid]; 

    alert(randomItem); 
} 
0

http://jsfiddle.net/McKxp/

JS:

var arr = ["foo","bar","baz"]; 

function getItem(){ 
    document.getElementById("something").innerHTML = arr[Math.floor(Math.random() * arr.length)]; 
} 

HTML

<div id="something"></div> 
<input type="button" onclick="getItem()" value="Click me"/> 
0

下面是一个例子:

http://jsfiddle.net/kUgHg/2/

的步骤是:

  1. 创建一个按钮元素,并给它一个ID:

    <button id="button1">Show random item</button> 
    
  2. 获取你的脚本到按钮的引用:

    document.getElementById("button1"); 
    
  3. 根据阵列长度计算阵列中的随机索引:

    Math.floor(Math.random() * array.length) 
    
  4. 添加click事件处理程序的按钮,在第3步中调用随机计算和显示你想要的方式:

    button.onclick = function() { … } 
    

All in one的:

var button = document.getElementById("button1"); 
var myarray = ["a", "b", "c", "d"]; 

button.onclick = function() { 
    alert(myarray[Math.floor(Math.random() * myarray.length)]); 
};