Я работаю внутри DocumentFragment и пытаюсь вставить в него HTML. Мы знаем, что DocumentFragment не имеет установщика innerHTML, поэтому я попытался вставить временный узел в DocumentFragment и вставить HTML после него, используя insertAdjacentHTML
. Затем я удалял временный элемент и оставлял фрагмент с нужным мне DOM.
Пример: (ошибка сделана намеренно)
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, где показано что методы ParentNode недоступны во всех браузерах... - person Heretic Monkey   schedule 27.02.2017