猿问

如何替换div元素内的文本?

我需要动态设置DIV元素内的文本。什么是最好的浏览器安全方法?我有可用的prototypejs和scriptaculous。


<div id="panel">

  <div id="field_name">TEXT GOES HERE</div>

</div>

该函数将如下所示:


function showPanel(fieldName) {

  var fieldNameElement = document.getElementById('field_name');

  //Make replacement here

}


交互式爱情
浏览 1259回答 3
3回答

慕妹3242003

我将使用update支持纯文本,HTML代码段或任何定义toString方法的JavaScript对象的Prototype 方法。$("field_name").update("New text");Element.update文档

慕妹3146593

您可以简单地使用:fieldNameElement.innerHTML = "My new text!";

慕村225694

function showPanel(fieldName) {&nbsp; var fieldNameElement = document.getElementById("field_name");&nbsp; while(fieldNameElement.childNodes.length >= 1) {&nbsp; &nbsp; fieldNameElement.removeChild(fieldNameElement.firstChild);&nbsp; }&nbsp; fieldNameElement.appendChild(fieldNameElement.ownerDocument.createTextNode(fieldName));}这样做的好处:它仅使用DOM,因此该技术可移植到其他语言,并且不依赖于非标准的innerHTMLfieldName可能包含HTML,这可能是尝试的XSS攻击。如果我们知道它只是文本,那么我们应该创建一个文本节点,而不是让浏览器将其解析为HTML。如果要使用javascript库,请使用jQuery,并执行以下操作:&nbsp; $("div#field_name").text(fieldName);请注意,@ AnthonyWJones的注释是正确的:“ field_name”不是特别描述性的ID或变量名。
随时随地看视频慕课网APP
我要回答