如果我有一个跨度,说:

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

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


当前回答

除了上面的纯javascript答案,你可以使用jQuery文本方法如下:

$('#myspan').text('newtext');

如果你需要扩展答案以获取/更改span或div元素的html内容,你可以这样做:

$('#mydiv').html('<strong>new text</strong>');

引用:

。text (): http://api.jquery.com/text/

. html (): http://api.jquery.com/html/

其他回答

不推荐使用innerHTML。 相反,您应该创建一个textNode。通过这种方式,您可以“绑定”文本,并且至少在这种情况下,您不会容易受到XSS攻击。

document.getElementById("myspan").innerHTML = "sometext"; //INSECURE!!

正确的做法:

span = document.getElementById("myspan");
txt = document.createTextNode("your cool text");
span.appendChild(txt);

有关此漏洞的详细信息: 跨站点脚本(XSS) - OWASP

编辑于2017年11月4日:

根据@mumush的建议修改了第三行代码:“使用appendChild();相反”。 顺便说一句,根据@Jimbo Jonny的说法,我认为所有的东西都应该被视为用户输入,应用层层安全原则。这样你就不会遇到任何意外。

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

这将选择id为myspan的dom-node,并将其文本内容更改为新文本

document.getElementById('myspan').innerHTML = 'newtext';

对于这个张成的空间

<span id="name">sdfsdf</span>

你可以这样做:-

$("name").firstChild.nodeValue = "Hello" + "World";

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