2012-08-30 7 views
1
<title>New Web Project</title> 
     <script type="text/javascript"> 
      var paras = document.getElementsByTagName("p"); 
      for (var i=0; i< paras.length; i++) { 
      var title_text = paras[i].getAttribute("title"); 
      if (title_text != null) { 
       alert(title_text); 
       } 
      } 

     </script> 
    </head> 
    <body> 
     <h1>New Web Project Page</h1> 
     <p title="test"> This is just a test</p> 
    </body> 

왜 경고에는 가치가 없습니까? 나는 그것이 텍스트 test을 팝업해야한다고 생각합니다.경고에 값이없는 이유는 무엇입니까?

+0

DOM이 완료되기 전에 JS를 호출합니다. –

+0

jQuery로 괜찮 으면 document.ready로 마무리하면됩니다. –

+0

jQuery를 사용하지 않는 이유는 무엇입니까? – Ascension

답변

6

는 아직로드하지 script 평가할 때 p가 있기 때문에. 당신이 바로 pscript를 추가하는 경우

, p가 이미 렌더링 될 때, 그것은 표시됩니다 예상 alert 같이

<p title="test"> This is just a test</p> 
<script type="text/javascript"> 
    var paras = document.getElementsByTagName("p"); 
    for (var i=0; i< paras.length; i++) { 
    var title_text = paras[i].getAttribute("title"); 
    if (title_text != null) { 
     alert(title_text); 
    } 
} 
</script> 

DEMO를 참조하십시오.

2

html 요소가 렌더링되기 전에 스크립트를 초기화하기 때문에.

스크립트를 아래쪽으로 이동하거나 DOM을 기다립니다. 이와 같이 :

<html> 
<head> 
<title>New Web Project</title> 
    <script type="text/javascript"> 
     window.onload = function(){ 
      var paras = document.getElementsByTagName("p"); 
      for (var i=0; i< paras.length; i++) { 
      var title_text = paras[i].getAttribute("title"); 
      if (title_text != null) { 
       alert(title_text); 
       } 
      } 
     } 
    </script> 
</head> 
<body> 
    <h1>New Web Project Page</h1> 
    <p title="test"> This is just a test</p> 
</body> 
</html> 
+0

문서가 완성되기 전에 * getElementsByTagName *을 호출하는 OP에 대해 올바르지 만 코드의 처음 몇 줄은 유용하지 않습니다. * window.onload *에 대한 두 번째 할당은 첫 번째 할당을 첫 번째 할당으로 대체하므로 이전 함수가 할당 된 경우에는 호출되지 않습니다. – RobG

+0

첫 번째 줄은 window.onload에 대해 알지 못하는 IE의 일부 버전을위한 것이므로 존재하지 않을 경우이를위한 함수를 생성합니다. –

+1

위의 세 번째 줄은 이전에 'window .onload'는 절대 호출되지 않습니다. IE의 어떤 버전이 window.onload를 지원하지 않습니까? 물론 IE 6+는 그렇습니다. 버전 5 또는 4가 그렇지 않은 경우 매우 놀랍습니다. – RobG