JavaScript 封装Utils库

var Tool = function () {//构造函数模式;用的时候需要new一下;
this.flag = “getElementsByClassName” in document;
//getElementsByClassName 在IE678中是不存在的。用这个来判断是不是低版本的IE浏览器;
//每次只需要判断this.flag是否存在就可以了;如果存在就是标准浏览器,如果不存在就是IE;
};
Tool.prototype = {//方法是定义在Tool的prototype上的;
constructor: Tool,//重写prototype后,prototype的constructor已经不是原来的Tool了;需要手动给他强制写会到Tool上去;
/经常用到的函数/
getElementsByClassName: function (context,cName) {//获取元素的ClassName
var context = context || document;
var ary = [];
if (this.flag) {
return this.listToArray(context.getElementsByClassName(cName));
}
var allNode = context.getElementsByTagName("");
var reg = new RegExp("(?:^| +)" + cName + “(?: +|KaTeX parse error: Expected 'EOF', got '}' at position 213: …eturn ary; }̲, toJSON: f…”, “i”);
for (var i = 0; i < allNode.length; i++) {
var cur = allNode[i];
if (cur.nodeType === 1) {
if (tagName) {//tahName不可能为0,false之类的数;所以可以用if直接判断传进来的参数;
if (reg.test(cur.nodeName)) {
ary.push(cur);
}
continue;
}
ary.push(cur);
}
}
return ary;
},
getFirst: function (curEle) {//获取第一个元素节点;
var children = this.getEleChildren(curEle);
return children.length > 0 ? children[0] : null;
},
getLast: function (curEle) {//获取最后一个元素节点;
var children = this.getEleChildren(curEle);
return children.length > 0 ? children[children.length - 1] : null;
},
getPre: function (curEle) {//上一个哥哥节点;
if (this.flag) {
return curEle.previousElementSibling;
}
var pre = curEle.previousSibling;
while (pre && pre.nodeType !== 1) {
pre = pre.previousSibling;
}
return pre;
},
getPres: function (curEle) {//获得所有哥哥们;
/
var ary = [],
attr = this.flag ? “previousElementSibling” : “previousSibling”;
var pre = curEle[attr];
while (pre) {
if (pre.nodeType === 1) {
ary.unshift(pre);
}
pre = pre[attr];
}
return ary;*/
var ary = [],
next = this.getPre(curEle);
while (next) {
ary.unshift(next);
next = this.getPre(next);
}
return ary;
},
getNext: function (curEle) {//下一个弟弟节点,第一个弟弟节点;
if (this.flag) {
return curEle.nextElementSibling;
}
var next = curEle.nextSibling;
while (next && next.nodeType !== 1) {
next = next.nextSibling;
}
return next;
},
getNexts: function (curEle) {//获取所有的弟弟们;
var ary = [],
next = this.getNext(curEle);
while (next) {
ary.push(next);
next = this.getNext(next);
}
return ary;
},
getSibling: function (curEle) {//获取上一个哥哥和下一个弟弟;
var ary = [],
pre = this.getPre(curEle),
next = this.getNext(curEle);
pre ? ary.push(pre) : void 0;
next ? ary.push(next) : void 0;
return ary;
},
getSiblings: function (curEle) {//获取所有的兄弟们(除了自己)
var pres = this.getPres(curEle),
nexts = this.getNexts(curEle);
return pres.concat(nexts);
},
getIndex: function (curEle) {//获取元素的索引值;
return this.getPres(curEle).length;
},
insertAfter: function (newEle,oldEle) {//在目标元素oldEle后面插入新元素newEle;如果没有传指定元素,则直接添加在后面
var next = this.getNext(oldEle),
par = oldEle.parentNode;
next ? par.insertBefore(newEle, next) : par.appendChild(newEle);
},
prependChild: function (parentEle,curEle) {//把一个元素节点添加为parentEle的第一个子节点;
var first = this.getFirst(parentEle);//获取par中的第一个元素节点;
first ? parentEle.insertBefore(curEle, first) : parentEle.appendChild(curEle);
},
innerHTML: function (curEle,str) {//获取元素的innerHTML;
var str= str || “”;
if (!str) {
return curEle.innerHTML;
}
curEle.innerHTML = str;
},
text:function (ele,str){//处理innerText和textContent的兼容性;传一个参数是获取;2个参数是设置;
if(ele&&ele.nodeType&&ele.nodeType1){
if(str
=undefined){//如果str没有传,那么方法是获取元素的文本内容;
if(typeof ele.textContent==‘string’)
return ele.textContent;
else
return ele.innerText;
}else{//如果传了,就是添加文本内容
if(str=null){
alert(‘text方法参数错误,str为null!’);
return ;
}else if(typeof str
’string’){
if(typeof ele.textContent==‘string’) {
ele.textContent += str;
}else{
ele.innerText+=str;
}
}else{
alert(‘text方法的参数错误!’)
}
}
}else{
alert(‘text方法的ele参数错误!’)
}
},
/下面是设置CSS/
setCss:function (curEle,attr,value) {//设置CSS属性值和获取CSS;如果三个参数就是设置,2个参数就是获取;att是attribute的缩写;
if(typeof value===“undefined”){//如果有第三个参数,就是设置Css;如果没有就是获取Css;
var reg = /^(?:margin|padding|border|float|position|display|background|backgroundColor)KaTeX parse error: Expected 'EOF', got '}' at position 185: …value; }̲ else{ …)");
return reg.test(curEle.className);
},
addClassName: function (curEle,cName) {//增加某个className;
if (!this.hasClassName(curEle,cName)) {
curEle.className += (" " + cName);
}
},
removeClassName: function (curEle,cName) {//移除类样式的方法;
var reg = new RegExp("(?:^| +)" + cName + "(?: +|KaTeX parse error: Expected 'EOF', got '}' at position 139: … } }̲ }; ~function (…)/g, “”);
};
strPro.mySub = function (len,isD) {//是不是有效的
var len = len || 10,
isD = isD || false,
str = “”,
n = 0;
for (var i = 0; i < this.length; i++) {
var s = this.charAt(i);
/[\u4e00-\u9fa5]/.test(s) ? n += 2 : n++;
if (n > len) {
isD ? str += “…” : void 0;
break;
}
str += s;
}
return str;
};
strPro.myFormatTime = function (format) {//时间格式化;
var reg = /^(\d{4})(?😐/|.|:)(\d{1,2})(?😐/|.|:)(\d{1,2})(?:\s+)(\d{1,2})(?😐/|.|:)(\d{1,2})(?😐/|.|:)(\d{1,2})$/g,
ary = [];
this.replace(reg, function () {
ary = ([].slice.call(arguments)).slice(1, 7);
});
var format = format || “{0}年{1}月{2}日 {3}:{4}:{5}”;
return format.replace(/{(\d+)}/g, function () {
var val = ary[arguments[1]];
return val.length === 1 ? “0” + val : val;
});
};
strPro.myQueryURLParameter = function () {//是否是有效URL
var reg = /([?&=]+)=([?&=]+)/g, obj = {};
this.replace(reg, function () {
obj[arguments[1]] = arguments[2];
});
return obj;
}
}();在这里插入代码片

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值