我很羞于发布这个问题,但我还没有设法在 Jquery 中使用 unwrap 或 replaceWith 方法来满足这种需要。
我的问题很简单:我需要删除 html 代码的一些节点(jquery 选择器),而不会丢失这些节点的子节点。
这是一个 Jsfiddle,它展示了我用于实现目标的难看代码的结果https://jsfiddle.net/uddaeh1u/15/(是的,它有效......)
// var content : the html source code of the wysiwyg
var result = '';
$(content).contents().each(function(){
var addContent = '';
// textNode
if(this.nodeType == 3) {
// Text Node
result+= $(this).text();
} else if(this.nodeType == 1 && $(this).hasClass('atwho-inserted')) {
// if is an Object Node with the target class
// I only keep it's contents (means that ".atwho-inserted" is not kept)
result+= $(this).html();
} else {
// in any other case I keep it entirely
result+= this.outerHTML;
}
});
你能给我找到一个更好的代码(使用 unwrap 方法)吗?
十分感谢 :)