我试图用文档片段替换元素的所有内容:
var frag = document.createDocumentFragment()
正在创建文档片段.没有问题.我添加元素就好了,也没有问题.我可以使用element.appendChild(frag)附加它.那工作也很好.
我正在尝试创建一个类似于jQuery的HTML的“替换”方法.我不担心旧浏览器的兼容性.是否有一个神奇的功能来替换元素的所有内容?
我已经尝试过element.innerHTML = frag.cloneNode(true),(根据我可以找到的每个“替换元素内容”wiki),这不起作用.它给了我< div> [object DocumentFragment]< / div> ;. 没有图书馆.
这意味着如果你把一个jQuery解决方案作为一个答案,你会得到downvoted.不想成为一个混蛋,但每次都会发生.
谢谢!
解决方法
你试过replaceChild
这样的东西
element.parentNode.replaceChild(frag,element)
来源:https://developer.mozilla.org/en-US/docs/DOM/Node.replaceChild
原来的jsFiddle:http://jsfiddle.net/tomprogramming/RxFZA/
element.innerHTML = ""; element.appendChild(frag);
jsfiddle:http://jsfiddle.net/tomprogramming/RxFZA/1/
请注意,在jsfiddle中,我只使用jquery来连接按钮,整个点击处理程序都是原始的javascript.
Edit2:pimvdb也提示,只是将新的东西添加到一个分离的元素并替换.
var newElement = element.cloneNode(); newElement.innerHTML = ""; newElement.appendChild(frag); element.parentNode.replaceChild(newElement,element);