如何从一个组中随机选择一个div并为其分配一个事件

时间:2012-10-28 14:27:05

标签: javascript

我正在尝试从一个组中随机选择一个div并将click事件分配给所选的一个。下面是我到目前为止编写的代码。

<div id="div1"> </div>
<div id="div2"> </div>
<div id="div3"> </div>
<div id="div4"> </div>

<script>

var div1 = document.getElementById("div1");
var div2 = document.getElementById("div2");
var div3 = document.getElementById("div3");
var div4 = document.getElementById("div4");



var randomnumber = Math.floor(Math.random() * (4 - 1 + 1)) + 1;

var bomb = "div" + randomnumber;


alert(bomb);

bomb.onclick = function() { alert("You clicked me...BOOM!")}; // does not work


</script>

2 个答案:

答案 0 :(得分:2)

您正在设置字符串炸弹的onclick属性,而不是元素。

使用

document.getElementById(bomb).onclick = function() { alert("You clicked me...BOOM!")};

如果您不想替换现有的点击侦听器,也可以使用addEventListener

document.getElementById(bomb).addEventListener(function() {
   alert("You clicked me...BOOM!")
});

答案 1 :(得分:0)

如果这是您的实际脚本,请尝试:

var bomb = window['div' + randomnumber].onclick = function(){alert('You clicked me... BOOM!');};

如果这不是实际的脚本,只需将window[替换为this[,即可引用当前上下文。

当然,@ dystroy的方法也可以。我刚刚添加了这个,以显示一种使用字符串

引用变量的方法