当我点击div元素时,我想提醒我点击的div的id。但是在所有div元素上,它提醒数组的最后一个值,即'e1'。
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body onload="populate();">
<script type="text/javascript">
function populate() {
var divArray = ["a1", "b1", "c1", "d1", "e1"];
for (var x in divArray) {
if (divArray[x] === 'a1')
document.getElementById(divArray[x]).innerHTML = "aaaaa";
else
document.getElementById(divArray[x]).innerHTML = "Common";
document.getElementById(divArray[x]).onclick = function() {
getDiv(divArray[x]);
};
}
}
function getDiv(x)
{
alert(x);
}
</script>
<div id="a1"></div>
<div id="b1"></div>
<div id="c1"></div>
<div id="d1"></div>
<div id="e1"></div>
</body>
</html>
答案 0 :(得分:3)
您的x
不是您希望的x
。这可能有所帮助。
// ...
document.getElementById(divArray[x]).onclick = (function(n) {
return function() {
getDiv(divArray[n]);
};
}(x));
// ...
答案 1 :(得分:1)
将getDiv(divArray[x])
替换为getDiv(this.id)
,因为您要返回所点击元素的ID。
答案 2 :(得分:0)
这是因为你的for循环已经在你实际点击div时结束了,所以x就是循环结束时的状态。
要解决此问题,您需要致电getDiv(this.id);
答案 3 :(得分:0)
尝试将点击事件(e)传递到您的点击处理程序
document.getElementById(divArray[x]).onclick = function(e) {
console.log(e.toElement.id);
};