Javascript 如何在鼠标单击时更改元素文本
所以,我对这类东西还不熟悉,我有一个问题。我发现这段代码是用来挑选一个随机单词的,但在挑选完所有单词之前不会再挑选它Javascript 如何在鼠标单击时更改元素文本,javascript,Javascript,所以,我对这类东西还不熟悉,我有一个问题。我发现这段代码是用来挑选一个随机单词的,但在挑选完所有单词之前不会再挑选它 function shuffle(array) { var m = array.length, t, i; while (m > 0) { i = Math.floor(Math.random() * m--); t = array[m]; array[m] = array[i]; array[i] = t; } ret
function shuffle(array)
{
var m = array.length, t, i;
while (m > 0)
{
i = Math.floor(Math.random() * m--);
t = array[m];
array[m] = array[i];
array[i] = t;
}
return array;
}
var keywords = ["Cheese", "Apples", "Grapes", "Chicken", "Potatoes", "Beef", "Bananas"];
shuffle(keywords); // shuffles the array
alert(keywords);
这就引出了一个问题。当我点击了一个伪装成卡片的白色框时,我怎么能触发它呢?我希望一个框在任何时候只显示其中一个值,并使用此代码在单击时随机选择另一个单词
非常感谢您的帮助。无需使用洗牌,您可以使用以下方法随机选择一个项目
var关键字=[“奶酪”、“苹果”、“葡萄”、“鸡肉”、“土豆”、“牛肉”、“香蕉”];
var mybox=document.getElementById('mybox'),
idx;
//单击该框的处理程序
mybox.addEventListener('click',function(){
var指数;
做{
index=Math.floor(Math.random()*关键字.length);
}while(index==idx);//确保每次单击都会更改所选的值
mybox.innerHTML=关键字[索引];
idx=指数;
})
#mybox{
边框:1px纯黑;
高度:100px;
宽度:100px;
文本对齐:居中;
}
制作一个html标记,如下所示:
默认值
出于示例的考虑,我将使用一个按钮作为“白框”的模拟,因为我不知道它背后的html是什么。然而,同样的原则也适用
Mock表示“白盒”
然后创建一个函数,从列表中随机选择一个值,并将其显示在上面的标记中:
function showWord(e){
var len = 1/keywords.length;
var pos = Math.floor(Math.random()/len);
document.getElementById('myvalue').innerHTML = keywords[pos];
}
…并通过单击侦听器将其绑定到显示触发元素(在本例中,是您的按钮,无论“卡”由什么标记组成):
document.getElementById('myButton').addEventListener("click", showWord);
单击按钮(或将事件侦听器绑定到的任何对象)现在将导致从数组中随机选择的内容显示在div中。随后的每次单击都将更改它
(你的问题有点含糊,所以这不是一个完美的答案,但希望它能满足你的需要。另外,我假设你已经创建了一个特定的“白色盒子冒充卡片”元素,或者至少在脑海中,并且需要Javascript来配合它)我感到困惑。这与“警报替代方案”有什么关系?您发布的代码似乎与您的问题根本没有关系。您的代码只是在洗牌数组。如果您想要输出一个随机项,请将返回数组更改为返回t。然后警报(洗牌(关键字));我感谢你为帮助我所做的努力,谢谢。