Javascript - IE中的innerHTML函数

时间:2010-11-16 07:30:25

标签: javascript innerhtml

我有一个内容为

的html文件
<html>
<body>
<script language="JavaScript">
    function fun1()
    {
        alert(document.getElementById('id1').innerHTML);
    }
</script>
<div id="id1">
    <ul>
        <li>Here111</li>
        <li>Here222</li>
        <li>Here333</li>
    </ul>
</div>
<a href="javascript:void(0)" onclick="fun1()">Click</a>
</body>
</html>

在innerHTML函数中,我只获得

<ul>
    <li>Here111
    <li>Here222
    <li>Here333</li>
</ul>

缺少</li>标记,如何获取整个内容?

5 个答案:

答案 0 :(得分:1)

您的脚本引用了一个名为 test1 的ID,但您的html没有。

如果你这样做:

<html>
    <head>
        <script>
            function test(){
                alert(document.getElementById('test1').innerHTML);
            }
        </script>
    </head>
    <body>
        <div id="test1">
            <ul>
                <li>This is first</li>
                <li>This is Second</li>
            </ul>
        </div>
        <a href="#" onclick="test();">hhhhhh</a>
    </body>
</html>

即使在IE 7/8中也能正常工作。

答案 1 :(得分:1)

您已将div的ID设置为“测试” 但你得到的是“test1”

alert(document.getElementById('test1').innerHTML);

应该是

alert(document.getElementById("test").innerHTML);

答案 2 :(得分:0)

在html

的开头添加<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

答案 3 :(得分:0)

还有outerHTML属性(遗憾的是,某些浏览器不支持)。它返回整个元素。

答案 4 :(得分:0)

这不是不正确的。对于<li>元素,结束标记在HTML中是可选的,因此IE在这里返回一个有效的HTML片段(而不是它总是这样)。

如果您需要结束标记,则需要通过遍历DOM来创建自己的HTML字符串。