2015-06-10 42 views
1

外部DIV我有這種情況:如何定位在JavaScript

<div id="first"> 
    <div> 
    <p>text</p> 
    </div> 
</div> 
<div id="second"> 
    <div> 
     <button class="button">click</button> 
    </div> 
</div> 
... 
<div id="first"> ... </div> 
<div id="second"> ... </div> 
... 

等,結構重複。

這個結構是動態創建的,所以我不能使用任何特定的類或ID作爲第一個div。

我需要檢索第一個div中的文本,當我點擊第二個div中的按鈕時。

(注:我需要一個純JavaScript的解決方案,而不是一個jQuery的解決方案)

感謝

+2

如果你不想使用它,你爲什麼用'jquery'標記你的問題? – Vince

+0

你是對的!抱歉!改變。 – user3590313

+0

您*重複使用*'id'值? – Sampson

回答

3

假設你有一個按鈕單擊事件處理程序,你可以從該事件處理程序做到這一點:

function buttonClickHandler(e) { 
    var first = this.parentNode.parentNode.previousSibling; 
    var paragraphs = first.getElementsByTagName("p"); 
    var text = paragraphs[0].textContent; 
} 

如果你在標有第一和第二個div的div上有常見的和已知的類名,那麼你可以使你的Javascript代碼遠離標記變化,這通常是一個好主意。


P.S.我相信你知道你不應該在你的HTML中有重複的id值。這段代碼不使用它們,但是如果你要重複的話,你應該使用類名而不是id值。