原生JavaScript实现删除恢复元素remove()和recover()

154 阅读1分钟
function remove(selectors) {
	if(!selectors) return
	selectors.removeNode = [];
	if (selectors.length != undefined) {
		var len = selectors.length;
		for (var i = 0; i < len; i++) {
			selectors.removeNode.push({
				parent: selectors[i].parentNode,
				inner: selectors[i].outerHTML,
				next: selectors[i].nextSibling
			});
		}
		for (var j = 0; j < len; j++) {
			selectors[0]?.parentNode?.removeChild(selectors[0]);
		}
	}
	else {
		selectors.removeNode.push({
			parent: selectors.parentNode,
			inner: selectors.outerHTML,
			next: selectors.nextSibling
		});
		selectors?.parentNode?.removeChild(selectors);
	}	
}

function recover(selectors) {
	if(!selectors) return;
	var len = selectors.removeNode.length;
	for (var i = 0; i < len; i++) {
		var node = selectors.removeNode[i];
		if (node.next == null && node.parent)
			node.parent.innerHTML += node.inner;
		else {
			var div = document.createElement("div");
			div.innerHTML = node.inner;
			node?.parent?.insertBefore(div.childNodes[0], node.next);
		}
	}
}

转自: 

blog.csdn.net/zhouziyu201…