3 Star 54 Fork 14

Yaohaixiao / dom.js

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
prepend.js 1.46 KB
一键复制 编辑 原始数据 按行查看 历史
Yaohaixiao 提交于 2023-11-16 21:43 . chore: 暂存代码
import isHTML from './utils/types/isHTML'
import isString from './utils/types/isString'
import isFunction from './utils/types/isFunction'
import isDOM from './isDOM'
import isElement from './isElement'
import text from './text'
import html from './html'
import insertBefore from './insertBefore'
import insertHTMLBeforeBegin from './insertHTMLBeforeBegin'
/**
* 将指定 DOM 节点或者 html 文本解析为 Element 元素,并将结果节点插入 reference 元素
* 自身内部的最前面或者 reference 元素前面。
* ========================================================================
* @method prepend
* @see https://developer.mozilla.org/zh-CN/docs/Web/API/Element/prepend
* @param {HTMLElement|String} el
* @param {HTMLElement} reference
* @return {Element|Text|null}
*/
const prepend = (el, reference) => {
let $target
if (!isElement(reference) || (!isHTML(el) && !isString(el) && !isDOM(el))) {
return null
}
if (isFunction(reference.prepend)) {
if (isDOM(el)) {
$target = el
} else if (isHTML(el)) {
$target = html(el)
} else {
$target = text(el)
}
reference.prepend($target)
return $target
} else {
$target = reference.firstChild
}
if (isDOM(el)) {
return insertBefore(el, $target)
} else if (isHTML(el)) {
return insertHTMLBeforeBegin($target, el)
} else {
return insertBefore(text(el), $target)
}
}
export default prepend
JavaScript
1
https://gitee.com/yaohaixiao/dom.js.git
git@gitee.com:yaohaixiao/dom.js.git
yaohaixiao
dom.js
dom.js
main

搜索帮助