1 Star 0 Fork 0

liuziyang/blog

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
dom.js 1.82 KB
一键复制 编辑 原始数据 按行查看 历史
liuziyang 提交于 2017-11-12 22:57 +08:00 . initial
/**
* @Author liuziyang
* @DateTime 2017-08-07
* 一些通用方法操作DOM
*/
function trim (s) {
return (s || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, '')
}
/**
* @Author liuziyang
* @DateTime 2017-08-07
* @param {[DOM元素]} el [DOM元素]
* @param {[String]} cls [需要判断的类名]
*/
function hasClass (el, cls) {
if (!el || !cls) return
if (cls.indexOf(' ') !== -1) {
throw new Error('类名中不能包含空格')
}
if (el.classList) {
return el.classList.contains(cls)
} else {
return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1
}
}
/**
* @Author liuziyang
* @DateTime 2017-08-07
* @param {[DOM元素]} el [DOM元素]
* @param {[String]} cls [要添加的类名]
*/
export function addClass (el, cls) {
if (!el || !cls) return
var currentCls = el.className
var classes = cls.split(' ')
for (var i = 0; i < classes.length; i++) {
var className = classes[i]
if (!className) continue
if (el.classList) {
el.classList.add(className)
} else {
if (!hasClass(el, className)) {
currentCls += ' ' + className
}
}
}
if (!el.classList) {
el.className = currentCls
}
}
/**
* @Author liuziyang
* @DateTime 2017-08-07
* @param {[DOM元素]} el [DOM元素]
* @param {[String]} cls [要删除的类名]
*/
export function removeClass (el, cls) {
if (!el || !cls) return
var classes = cls.split(' ')
var currentCls = ' ' + el.className + ' '
for (var i = 0; i < classes.length; i++) {
var className = classes[i]
if (!classes) continue
if (el.classList) {
el.classList.remove(className)
} else {
if (hasClass(className)) {
currentCls.replace(' ' + currentCls + ' ', ' ')
}
}
}
if (!el.classList) {
el.className = trim(currentCls)
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/liuziyangg/blog.git
git@gitee.com:liuziyangg/blog.git
liuziyangg
blog
blog
9d9d6c8c271684b60712a19814420070dffde71c

搜索帮助