我正在尝试从一个组中随机选择一个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>
答案 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的方法也可以。我刚刚添加了这个,以显示一种使用字符串
引用变量的方法