function unwrap(el, target) { if ( !target ) { target = el.parentNode; } while (el.firstChild) { target.appendChild(el.firstChild); } el.parentNode.removeChild(el);}var AutoFix = true;document.getElementById('editable').addEventListener('DOMNodeInserted', function(ev) { if ( !AutoFix ) { return; } if ( ev.target.tagName=='SPAN' ) { unwrap(ev.target); }});dom节点被删除,在内存中也没有了,他也就没有所谓的next previous了引用类型一个改变,其他的一样会改变,引用的是同一个内存,就不用重复的获取了 如child = parents.childNodes [text span span]只要有一个子节点改变了 child就立马改变,比如去掉第二个的span,则child就变成了[text text span]childNodes获取的是所有的子节点 children是除了text节点之外的所有元素节点