Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在鼠标单击时更改元素文本_Javascript - Fatal编程技术网

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。然后警报(洗牌(关键字));我感谢你为帮助我所做的努力,谢谢。