2014-01-26 49 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'; 
} 

,但我有訪問link.What下一sibbling div我應該在以下行替換的問題

<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'作爲'this.parentNode.nextSibbling'在你的問題? –

0

忽視文本DOM節點,並得到正確的使用元素:

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

:我已經試過了,我收到錯誤:'this.parentElement.nextElementSibbling'未定義 –

+0

不能幫助您,請嘗試將您的onclick監聽器移至javascript(不是html屬性)並使用斷點和監視變量來調試代碼chrome開發工具 –

相關問題