显示孩子的innerHTML

时间:2011-04-22 08:49:45

标签: javascript

我有:

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

我如何获得“td1”的孩子的innerHTML?

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

不能工作。

4 个答案:

答案 0 :(得分:14)

有些浏览器会将换行符解释为第一个childNode。所以你可以这样做:

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

或更安全的方法

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

[编辑2019 ] 或更现代的

document.querySelector("td1 > div").innerHTML

答案 1 :(得分:1)

我讨厌成为使用jQuery来解决每个DOM选择/操作问题的人,但是如果你使用jQuery所有你需要的就是......

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

答案 2 :(得分:0)

尝试使用alert(document.getElementById(“td1”)。childNodes [1] .innerHTML);

答案 3 :(得分:0)

很少有浏览器将空格视为文本节点,并且在遍历时会产生问题。

以避免您应该检查节点类型

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

查看更多信息here