我很抱歉再次提出这个非常重复的问题,但当我搜索以前的答案时,我找不到任何解决方案。
在下面的代码中,当我单击生成的链接时,我的浏览器返回:Uncaught TypeError: Cannot set property 'innerHTML' of undefined
。你愿意帮助我吗?
非常感谢你提前。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<!--generating the links-->
<div style="background-color:gray;width:100px;min-height:200px;">
<?php
for ($i=0 ; $i < 9 ; $i++) {
echo "<a href='#' class='links'>{$i}</a><br/><br/>";
}
?>
</div>
<script type="text/javascript">
var links = document.getElementsByTagName('a');
for (var i=0;i<links.length;i++){
links[i].onclick = function (){
console.log(links[i].innerHTML);
};
}
</script>
</body>
</html>
答案 0 :(得分:2)
在您的代码中,您尝试访问调用links[i]
处理程序时不再存在的元素onclick
。要解决事件处理程序中的元素,您可以使用this
:
for (var i = 0; i < links.length; i++) {
links[i].onclick = function() {
console.log(this.innerHTML);
};
}