0
奇怪的情況,在網上找不到解決方案。我在contentEditable
區域內有一些innerHTML
區域,我試圖將其添加到文檔片段中...並保留包含中斷標籤的格式。當我這樣做:將節點附加到文檔片段以及中斷標籤
var d = document.createDocumentFragment();
var content = document.getElementById('content').getElementsByTagName('*');
console.log(content);
//this logs (img, br, span, br, img, br, span) ~ I shortened the output to just tags
for (var i = 0; i < content.length; i++) {
(function(iCopy) {
d.appendChild(content[iCopy]);
})(i);
}
console.log(d);
最後的日誌返回(img,span,img,span)。爲什麼循環無法識別中斷標籤,我該怎麼做才能將它們添加到我的文檔片段中?
當我登錄時沒有像這樣的任何附加的片段:
var content = document.querySelector('#content');
for (var i = 0; i < content.children.length; i++) {
console.log(content.children[i].tagName);
//d.appendChild(content.children[i]);
}
我得到 「IMG,BR,跨度,BR,IMG,BR,跨度」。只要我取消註釋appendChild
,休息消失。爲什麼??
我的解決辦法:
var d = document.createDocumentFragment();
var content = document.querySelector('#content');
while (content.children.length > 0) {
d.appendChild(content.children[0]);
}
console.log(d);
我只是'while(content.children.length> 0){d.appendChild(content.children [0]);}'。這是有道理的,我明白,它正在重新索引 – denikov
是的,這也可以。要點是不要跳過索引。 – 2015-07-03 16:29:38