2013-02-16 87 views
-1
<div class="main_box"> 
    <div class="div_r"> 
    <div class="div_l">Hello</div> 
    </div> 
</div> 
<script> 
alert(document.getElementsByClassName('main_box').childNodes[1].innerHTML); 
</script> 

我想通過引用「main_box」類來獲得「div_l」類的內容。 我已經嘗試了上面的代碼,但它不工作。如何使用javascript訪問div標籤的內部文本?

回答

2

像這樣:

document.getElementsByClassName('main_box')[0].childNodes[1].childNodes[1].innerHTML 
+0

nope它不工作,並給出錯誤「無法讀取屬性childNodes未定義」 – 2013-02-16 08:54:12

+0

@PoojaDesai我修正了這個例子。它必須是索引爲1的childNode。然後它工作,但document.querySelectorAll仍然會更快。 – 2013-02-16 09:00:20

0
alert(document.getElementsByClassName('main_box')[0].childNodes[1].innerHTML 
               ^^^-- 

你需要知道哪些節點得到的孩子,因爲gEBCN()返回一個節點LIST,而不僅僅是一個單一的節點。

+0

nope它不工作,並給出錯誤「無法讀取屬性childNodes未定義」 – 2013-02-16 08:48:00

+0

@PoojaDesai你錯了,它工作:http://jsfiddle.net/axelmichel/pLXrs/可能在這裏有另一個問題? – 2013-02-16 09:03:59

0

如何使用jQuery?

實施例:

var value = $('.main_box .div_r .div_l').html(); 
0

jQuery

$('.main_box .div_l').text() 
+0

它給出空白警報框 – 2013-02-16 08:54:42

0

有不同的變體達到這一點。正如已經回答你可以使用getElementsByClassName,只有你錯過的是這個函數返回一個數組。

document.getElementsByClassName('main_box').... 

一個較新的語法(未通過即< 9支撐)爲:

一個)的情況下,你希望多於一個的元件:在殼體

document.querySelectorAll('.main_box .div_r .div_l')[0].innerHTML 

b)您希望最大一個一個:

document.querySelector('.main_box .div_r .div_l').innerHTML 
相關問題