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