2014-01-26 6 views
0

У меня есть различные вопросы, на мой чаво страницы как этотКак получить доступ к узлу сиблинга родителя в javascript?

<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 легко, но я не «т хотите сделать страницу тяжелым, так что я просто с помощью следующей функции

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'; 
} 

Но у меня возникают проблемы доступа к следующему sibbling div из link.What я должен заменить в следующей строке

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

Я хотел бы предложить, чтобы обратиться к [** документации **] (https://developer.mozilla.org/ en-US/docs/Web/API/Node) вместо угадывания имен свойств –

ответ

1

Если вы хотите получить следующего родственника родительского узла, то ваш код должен быть таким.

this.parentNode.nextSibling 
+0

: Я получаю сообщение об ошибке: 'this.parentNode.nextSibling' не определено –

+0

Вы уверены, что ставите' this.parentNode.nextSibling' not как 'this.parentNode.nextSibbling' в вашем вопросе? –

0

Для игнорирования текста Dóm узлов и получить право использовать один элемент:

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

: Я уже пробовал это, я получаю сообщение об ошибке: 'this.parentElement.nextElementSibbling' не определено –

+0

не может помочь вам, попробуйте переместить ваш onclick-прослушиватель в javascript (не атрибут html) и отлаживать код с помощью точек останова и просматривать переменные в Инструменты для Chrome –

Смежные вопросы