【发布时间】:2017-01-21 07:04:37
【问题描述】:
有一个 DOM 节点(即:<p id="myNode">hello world</p>)和一个包含它的新替换的原始字符串。
什么是有效实现的好技术...
var rawReplacement = `<p id="myNode" updated=true foo="bar">hello world!!!</p>`
document.getElementById("myNode").outerHTML = rawReplacement
但没有实际使用 outerHTML(它将原始元素与 DOM 分离;丢失事件等)。
【问题讨论】:
-
你只是想改变属性
updated=true和foo="bar",以及段落的文本吗? -
接受的答案需要适应任意数量的属性,而不仅仅是更新和 foo。
-
提交的 2 个答案,mine 和 waterfoul's,应考虑任意数量的属性。
-
它需要与模板和现有的 DOM 元素无关;一个可重用的函数,它可以采用任何模板字符串和任何现有的 DOM 节点并将所有属性从所述模板复制到现有的 DOM 节点。所以即:解析模板中的属性,然后循环它们以应用于 DOM 节点。
-
您将编写一个自定义函数来处理它。不幸的是,没有现成的解决方案。用例是什么?我将使用您可以尝试的示例解决方案来更新我的答案。
标签: javascript html outerhtml