Javascript 内部文本不适用于段落和标题HTML元素
我是Javascript新手,我尝试了下面的代码,它对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> //
元素很好,但对和
<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