2016-06-05 3 views
4

td 요소가되어야하는 버튼의 부모 노드를 가져오고 대신 body 요소를 얻습니다. 그 원인은 무엇입니까? JavaScript 만 사용하고 jQuery는 사용하지 않습니다.함수에서 잘못된 부모 노드가 나타나는 이유는 무엇입니까?

<html> 
<head> 
    <meta charset="utf-8"> 
</head> 
    <body> 
     <tr> 
      <td><input type='text'></td> 
      <td><button class='clk' onclick="g(this)">click me!</button></td> 
     </tr> 
     <script src="jquery/jquery.min.js"></script> 
     <script> 
      function g(c) { 
       alert(c.parentNode.nodeName); 
      } 
     </script> 
    </body> 
</html> 

답변

4

문제는 당신이 잘못된 HTML <table><tr>을 넣어하지를 가지고있다 :

내 코드입니다. 그런 다음 브라우저는이를 거부하고 유효한 부모가없는 <td>을 발견 한 다음 유효한 부모가없고 <body>으로 끝나는 <button>을 만남.

잘못된 html 마크 업을 제공하면 예기치 않은 결과가 발생합니다.

는 랩 당신의 <tr><table></table> 및 일부 태그 특히 테이블 태그가 허용되는 부모와 자녀에 대한 매우 구체적인 것을 <tbody>, <thead> 또는 <tfoot>

<table> 내에서 참고가 될 수 있습니다.

DEMO

관련 문제