2014-01-26 2 views
0

나는 대답은 숨겨져이javascript에서 parent의 자식 노드에 액세스하는 방법?

<h3><a href="#" onclick="this.parent.nextSibbling.style=toggle_display()">How to signup?</a></h3> 
<div class="info" style="display:none"> 
    This is the hidden answer 
</div> 

처럼 내 자주 묻는 질문 페이지에 다양한 질문과 사용자가 링크를 클릭 아래에있는 div는 appears.Though 나는 돈을 쉽게 사용하여 jQuery를 할 수 있지만 때 'T는 그래서 단순히 다음과 같은 기능

function toggle_display() 
    { 

     var answers=document.getElementsByClassName("info"); 
     for(var i=0;i<answers.length;i++) 
     { 
      //hide all the divs first 
      answers[i].style.display='none'; 
     } 
      //return block as style so that the caller's div answer can be set to block 
     return 'block'; 
} 

를 사용하여 페이지 무거운를 만들고 싶어하지만 내가 다음 줄에 대체해야 link.What의 다음 sibbling div 액세스하는 데 문제가

<a href="#" onclick="**this.parent.nextSibbling**.style=toggle_display()"> 
+0

나는 상담을 제안 [** 설명서 **] (https://developer.mozilla.org/를 속성 이름을 추측하는 대신 –

답변

1

부모 노드의 다음 형제를 얻으려면 코드가 이와 같아야합니다.

this.parentNode.nextSibling 
+0

: 오류가 발생했습니다 :'this.parentNode.nextSibling'은 정의되지 않았습니다 –

+0

'this.parentNode.nextSibling'을 넣지 않습니까? 귀하의 질문에'this.parentNode.nextSibbling'로? –

0
텍스트 DOM 노드를 무시하고

오른쪽 한 요소 사용 얻을 :

this.parentElement.nextElementSibling.style = ...... 
+0

: 이미 이것을 시도했지만 오류가 발생했습니다 : 'this.parentElement.nextElementSibbling'이 정의되지 않았습니다 –

+0

당신을 도울 수 없습니다. onclick 수신기를 자바 ​​스크립트로 옮기고 (html 속성이 아님) 중단 점을 사용하여 코드를 디버그하고 변수를 봅니다. 크롬 개발자 도구 –

관련 문제