当前位置: 首页 > 知识库问答 >
问题:

如何使用JavaScript更改span元素的文本?

常雪风
2023-03-14

如果我有一个跨度,就说:

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

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

共有2个答案

卫振
2023-03-14

因此不推荐使用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的建议修改了第三行代码:“use appendChild();insteed”。
顺便说一句,根据@Jimbo Jonny,我认为通过应用层安全原则,所有内容都应该被视为用户输入。这样你就不会遇到什么惊喜了。

司空坚
2023-03-14

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

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

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

//POSSIBLY INSECURE IF NEWTEXT BECOMES A VARIABLE!!
document.getElementById("myspan").innerHTML="newtext";
 类似资料:
  • 问题内容: 如果我有跨度,请说: 如何使用JavaScript将“ hereismytext”更改为“ newtext”? 问题答案: 对于现代浏览器,您应该使用: 尽管较旧的浏览器可能不知道,但不建议使用,因为当用户输入新文本时,它会引入XSS漏洞(有关更多详细讨论,请参见下面的其他答案):

  • 问题内容: 如何使用JavaScript 响应事件来更改HTML元素的类? 问题答案: 更改类的现代HTML5技术 现代浏览器添加了 classList , 该类 提供了一些方法,可以在不需要库的情况下更轻松地操作类: 不幸的是,尽管有一些垫片可以将其支持添加到IE8和IE9中,但这些功能在v10之前的Internet Explorer中无法使用。但是,它越来越受到支持。 简单的跨浏览器解决方案

  • 问题内容: 如何使用JavaScript 响应事件来更改HTML元素的类? 问题答案: 更改类的现代HTML5技术 现代浏览器添加了classList ,该类提供了一些方法,可以在不需要库的情况下更轻松地操作类: 不幸的是,尽管有一些垫片可以将其支持添加到IE8和IE9中,但这些功能在v10之前的InternetExplorer中无法使用,可从此页面获得。但是,它越来越受到支持。 简单的跨浏览器解

  • 我必须创建一个函数,它接受两个参数,一个选择器和一个字符串,它将把选定元素的文本内容中的每个单词放到一个新的“span”元素中。每个新的“span”元素必须有一个唯一的ID,由前缀和一个连续整数(如par0、par1等)组合而成。该函数还需要处理嵌套的子元素... 任何帮助创建这将是高度赞赏的。谢谢你...

  • 我是自动化的新手。我正在尝试自动化一个网页,有一个文本字段,我必须在其中输入一些文本,我尝试了driver.findElement(by.xpath(“ElemNT的XPath”).sendkeys(“value”);但这不起作用,所以我尝试通过Javascript driver.executeJavaScript(“arguments[0].value='100';”,“element path

  • 问题内容: 我想动态更新元素的文本: 我是jQuery的新手,因此对我来说,这项任务似乎非常具有挑战性。有人可以指出我要使用的功能/选择器吗? 如果可能的话,我想在不为需要更改的文本添加新容器的情况下执行此操作。 问题答案: 在Javascript中,该属性为您提供元素的所有子节点,包括文本节点。 因此,如果您知道要更改的文本始终是元素中的第一件事,那么请给出以下HTML: 您可以这样做: 当然,