开发者问题收集

我应该选择哪个属性来设置“文本” HTML 元素? [重复]

2021-08-13
126

我想使用 Java 脚本更改 P 中的文本或 HTML 中的其他标记

我尝试了许多不同的方法。 但是,这些方法都不太奏效。

控制台显示。

Uncaught TypeError: Cannot set property 'textContent' of null

<script>
//1 document.getElementById("stackoverflow").textContent="newtext";
//2 document.getElementById("stackoverflow").value ="newtext";
//3 document.getElementById("stackoverflow").innerHTML ="newtext";

<script>
 <div class="row">
<p id="stackoverflow">I wanna change this text</p>
</div>
3个回答

两处更改

  1. 在元素加载后移动脚本
  2. 从标记中删除 id 以下代码有效
document.getElementById("stackoverflow").textContent="newtext";
<p id="stackoverflow">I wanna change this text</p>
Dev Ananth
2021-08-13

检查你的 id 之间是否没有空格。 id 是 stackoverflow 并且你给出了 document.getElementById(" stack overflow ")

Vaibhav Deshmukh
2021-08-13

这是完全正常的,只要 p 标签上有两个 id 属性,则仅会考虑第一个。

let p = document.getElementById("stackoverflow");
console.log(p);
<p id id="stackoverflow">This is a sample paragraph</p>

但是,当您删除第一个 id 时,它应该可以按预期工作

let p = document.getElementById("stackoverflow")
console.log(p);
<p id="stackoverflow">This is a sample paragraph</p>
let p = document.querySelector("p");

console.log(p.id);
<p id id="stackoverflow">This is a sample paragraph</p>

如您所见, id 属性为

Yves Kipondo
2021-08-13