3 Star 54 Fork 14

Yaohaixiao / dom.js

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
replace.js 1.23 KB
一键复制 编辑 原始数据 按行查看 历史
import isHTML from './utils/types/isHTML'
import isFunction from './utils/types/isFunction'
import isDOM from './isDOM'
import isElement from './isElement'
import insertAfter from './insertAfter'
import insertHTMLAfterEnd from './insertHTMLAfterEnd'
import hide from './hide'
/**
* 用指定 DOM 节点或者将 HTML 字符转化成节点替换 reference 节点
* ========================================================================
* @method replace
* @since 1.1.0
* @see https://developer.mozilla.org/zh-CN/docs/Web/API/Element/replaceWith
* @param {HTMLElement|String} el
* @param {HTMLElement} reference
* @return {Element|null}
*/
const replace = (el, reference) => {
let $replace
let $parent
/* istanbul ignore else */
if (!isElement(reference) || (!isDOM(el) && !isHTML(el))) {
return null
}
$parent = reference.parentNode
if (!$parent) {
return null
}
hide(reference)
if (isDOM(el)) {
$replace = insertAfter(el, reference)
} else {
$replace = insertHTMLAfterEnd(reference, el)
}
if (isFunction(reference.replaceWith)) {
reference.replaceWith($replace)
} else {
reference.remove()
}
return $replace
}
export default replace
JavaScript
1
https://gitee.com/yaohaixiao/dom.js.git
git@gitee.com:yaohaixiao/dom.js.git
yaohaixiao
dom.js
dom.js
main

搜索帮助