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

时间:2016-02-06 08:10:43

标签: javascript html

我是Javascript的新手,我尝试了以下代码,它适用于<div>元素但不适用于<P> and <h1> elements

<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>

当我对document.getElementById('heading').innerHTML= 'Hello World';元素使用<P> and <h1>时,上述脚本有效(使用innerHTML代替innerText

为什么innerText属性不适用于<p> and <h1>元素?

2 个答案:

答案 0 :(得分:5)

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

为什么?

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

第二个建议是:

更改

innerText

要。

textContent

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

答案 1 :(得分:0)

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