如果我有一个跨度,说:
<span id="myspan"> hereismytext </span>
如何使用JavaScript将“hereismytext”更改为“newtext”?
如果我有一个跨度,说:
<span id="myspan"> hereismytext </span>
如何使用JavaScript将“hereismytext”更改为“newtext”?
当前回答
不能用于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; 是解决问题的最好办法。
其他回答
我使用Jquery,上面没有一个帮助,我不知道为什么,但这是有效的:
$("#span_id").text("new_value");
不推荐使用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的说法,我认为所有的东西都应该被视为用户输入,应用层层安全原则。这样你就不会遇到任何意外。
不能用于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; 是解决问题的最好办法。
对于这个张成的空间
<span id="name">sdfsdf</span>
你可以这样做:-
$("name").firstChild.nodeValue = "Hello" + "World";
除了上面的纯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/