2014-07-25 8 views
0

죄송합니다.이 매우 반복적 인 질문을 다시 한 번 묻습니다. 그러나 이전 답변을 검색 할 때 어떤 해결책도 찾을 수 없었습니다. 아래 코드에서 내 브라우저는 다음을 반환합니다. Uncaught TypeError: Cannot set property 'innerHTML' of undefined 생성 된 링크를 클릭합니다. 나를 도와 주실 친절 하시겠습니까? 미리 감사드립니다. 코드에서잡히지 않은 타입 오류 : 정의되지 않은 'innerHTML'속성을 설정할 수 없습니다.

<!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

주, 당신은 발생하는대로' 고전적인 폐쇄 문제. – adeneo

답변

2

당신은 onclick 투수가 호출 될 때 더 이상 존재하지 않는 것 요소 links[i]에 액세스하려고합니다. 이벤트 핸들러 내에서 요소를 해결하기 위해 당신은 사용할 수 있습니다 this :

for (var i = 0; i < links.length; i++) { 
    links[i].onclick = function() { 
     console.log(this.innerHTML); 
    }; 
} 

더 : 그것은`을 console.log (this.innerHTML)해야한다는http://www.quirksmode.org/js/this.html#link5

+0

정말 고마워요. 당신은 최고입니다. – Tower

관련 문제