Javascript 内部文本不适用于段落和标题HTML元素

Javascript 内部文本不适用于段落和标题HTML元素,javascript,html,Javascript,Html,我是Javascript新手,我尝试了下面的代码,它对元素很好,但对和 <script type="text/javascript"> function PrintText(){ document.getElementById('heading').innerText = 'Hello World'; } </script> <body> <div id="heading"></div> //

我是Javascript新手,我尝试了下面的代码,它对
元素很好,但对

<script type="text/javascript">
    function PrintText(){
        document.getElementById('heading').innerText = 'Hello World';
    }
</script>

<body>
    <div id="heading"></div> // Works
    <h1 id="heading"></h1> // Not Working
    <P id="heading"></P> // Not Working

    <button type="button" onclick="PrintText()">Submit</button>
</body>

函数PrintText(){
document.getElementById('heading').innerText='Hello World';
}
//工作
//不起作用

//不工作 提交
当我使用
document.getElementById('heading').innerHTML='helloworld'
对于

元素,上述脚本工作(使用
innerHTML
而不是
innerText


为什么
innerText
属性不适用于
元素?

第一个建议是不要在同一页面的多个元素上放置相同的ID

为什么?

因为当您执行
document.getElementById()时,
浏览器查找在找到该ID的第一个元素时停止

第二个建议是:

改变

innerText


innerText
无法跨浏览器工作。最好使用标准方式将文本与
textContent

放在一起,问题在于您正在使用ID。ID是独一无二的。不能重复使用ID。如果您想同时分配多个元素,请给它们相同的类,并在Javascript代码中按类调用它们。这应该可以解决您的问题,因为Javascript不希望多个元素具有相同的ID,因此它只编辑第一个元素。

innerText
仅在IE和Chrome中实现。@Teemu-即使innerText不在IE和Chrome中工作。我已经验证了……
innerText
仅在IE和Chrome中工作。I不知道你是否验证了和元素通常在编辑器中编写时,我删除了另外两个元素…我只保留了一个元素,不是全部三个元素。太好了!我只是想提一下,如果相同的id出现在多个元素上会发生什么。很高兴能帮助你。
textContent