如果我有一个跨度,说:

<span id="myspan"> hereismytext </span>

如何使用JavaScript将“hereismytext”更改为“newtext”?


当前回答

我使用Jquery,上面没有一个帮助,我不知道为什么,但这是有效的:

 $("#span_id").text("new_value");

其他回答

我使用Jquery,上面没有一个帮助,我不知道为什么,但这是有效的:

 $("#span_id").text("new_value");

和其他答案一样,不建议使用innerHTML和innerText,最好使用textContent。这个属性很受支持,你可以这样检查它: http://caniuse.com/#search=textContent

不能用于HTML代码插入,类似于: Var a = "获取文件<a href='url'>的链接</a>" Var b = "获取文件<a href='url'>另一个链接</a>" Var c = "get file <a href='url'>last link</a>"

用 getElementById (myspan”)的文件。textContent = a; 在 <span id=“myspan”>第一个文本</span>

使用计时器,但它只是将引用目标显示为文本,而不是运行代码,即使它在源代码中正确显示。如果jquery方法不是真正的解决方案,使用:

. getelementbyid(“myspan”)。innerHTML = a到c; 是解决问题的最好办法。

对于现代浏览器,您应该使用:

document.getElementById("myspan").textContent="newtext";

虽然旧的浏览器可能不知道textContent,但不建议使用innerHTML,因为当新文本是用户输入时,它会引入XSS漏洞(参见下面的其他答案,了解更详细的讨论):

//POSSIBLY INSECURE IF NEWTEXT BECOMES A VARIABLE!!
document.getElementById("myspan").innerHTML="newtext";

const span = document.querySelector("#span"); const btn = document.querySelector("#changeBtn"); btn。addEventListener("click", () => { 跨度。innerText = "text changed" }) <span id="span"> <button id="changeBtn">Change Text</button> .