我正在使用DocumentFragment,並試圖向其中插入HTML。我們知道DocumentFragment沒有innerHTML setter,因此我試圖在DocumentFragment中插入一個臨時節點,並在使用insertAdjacentHTML
後插入HTML。然後,我會刪除臨時元素,並留下與我想要的DOM片段。在DocumentFragment中:無法在'Element'上執行'insertAdjacentHTML':該元素沒有父項
例子:(錯誤是故意的)
var fragment = document.createDocumentFragment();
var temporaryElement = fragment.appendChild(document.createElement('div'));
// Before we move on.. I can see that the `temporaryElement` does have a parent
console.log(temporaryElement.parentNode.nodeType);
// The following throws an error...
temporaryElement.insertAdjacentHTML('afterend', '<div>Some crazy custom HTML..</div>');
fragment.removeChild(temporaryElement);
我可以清楚地看到,對於臨時元素的parentNode,所以我爲什麼會得到這個錯誤?
父節點的類型的'Node.DOCUMENT_FRAGMENT_NODE'(控制檯顯示11,其匹配常數),這顯然是不運行'insertAdjacentHTML'有效的父。另請參閱[MDN的瀏覽器兼容性表](https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment#Browser_compatibility),它顯示ParentNode方法在所有瀏覽器中都不可用... –
您可以附加另一個片段,這樣以後您不必刪除任何東西。請參閱http://stackoverflow.com/questions/9284117/inserting-arbitrary-html-into-a-documentfragment/25214113#25214113爲方便助手 – dandavis