孩子

2011-04-22 99 views
3

的顯示innerHTML的我有:孩子

<td id="td1"> 
    <div> 
      aaaaaa 
    </div> 
</td> 

我怎樣才能獲得 「TD1」 的孩子的innerHTML?

function displaymessage() { 
    var i = 0; 
    alert(document.getElementById("td1").childNodes[0].innerHTML); 
} 

dosen't work。

回答

12

某些瀏覽器會將換行符解釋爲第一個childNode。所以,你可以這樣做:

document.getElementById("td1").childNodes[1].innerHTML 

或更安全的方法

document.getElementById("td1").getElementsByTagName('div')[0].innerHTML 
0

嘗試使用alert(document.getElementById(「td1」)。childNodes [1] .innerHTML);

1

我討厭是使用jQuery來解決每一個DOM選擇/操作問題的傢伙,但如果你使用jQuery所有你需要是...

function displayMessage() { 
    alert($('#td1 > div').html()) 
} 
+1

而其他的答案是技術上是正確的,這是其中的一件事情。你必須決定你是否使用jQuery。如果你是,那麼它只是沒有意義*不*使用@Chris W的答案... – 2011-04-22 10:10:12

0

幾個瀏覽器視爲空白文本節點和在遍歷產生問題。

避免你應該檢查節點類型

childNode = document.getElementById("td1").childNodes[0] 
if(childNode.nodeType==1) 
alert(childNode.innerHTML) 

看到更多的信息here