孩子

2011-04-22 75 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