这是我的代码:

<html>
<head>

    <script type="text/javascript">
     var x= document.getElementById("2").value;
        document.getElementById("1").innerHtml = x;
    </script>

</head>
<body>
<p hidden="hidden" id="2">This paragraph should be hidden.</p>
<p>This is a visible paragraph.</p>
<p><b>Note:</b> The hidden attribute is not supported in IE.</p>
    <p id="1"></p>
</body>
</html>


在这段代码中,您可以看到一个隐藏标签。我希望JavaScript代码读取ID为p2标记的文本值,然后将相同的值打印到带有<p>的其他id="1"标记。但这是行不通的。早些时候我什至尝试使用nodeValue,但这也无法正常工作,当我在Google Developer工具中签出时,它显示了如下错误:


  无法读取null的属性“ value / nodeValue”


请注意:

经过快速实验后,我注意到在添加事件处理程序<body onload="y();>"之后没有错误,但是没有预期的结果!

请帮忙!

最佳答案

存在三个问题:


没有innerHtml,innerHTML是正确的语法。
隐藏的“ p”没有值,它不是输入字段。使用innerHTML进行访问。
您的javascript代码会在浏览器了解paragrap之前运行,因此当您希望对其进行访问时它们就不存在。在段落后放置javascript或在页面加载后运行代码。


这应该工作:

<html>
<head>
</head>
<body>
    <p hidden="hidden" id="2">This paragraph should be hidden.</p>
    <p>This is a visible paragraph.</p>
    <p><b>Note:</b> The hidden attribute is not supported in IE.</p>
    <p id="1"></p>

    <script type="text/javascript">
        var x= document.getElementById("2").innerHTML;
        document.getElementById("1").innerHTML = x;
    </script>
</body>
</html>

10-04 22:16
查看更多