原生javascript-分享自己常用的函数
2024-08-26 13:32:11
【一】添加监听事件
addHandler:function(node,type,fn){if(node.addEventListener){
node.addEventListener(type,fn,false); // false,设置为冒泡事件
}
else{
node.attachEvent('on'+type,function(){
fn.apply(node,arguments); // attachEvent方法中,this并不是指向node,所以需要用apply()方法改变
});
}
}
【二】设置元素的样式
setCss:function(node,val){ // val:{'top':'2px','font-size':'12px'}
for(var v in val){
node.style.cssText += ';'+ v +':'+val[v]; //使用 cssText就可以同时设置多个属性,还有个好处可以避免 cssFloat,styleFloat的判断
}
}
【三】获取CSS类名元素
//parent是可选参数,
getByClassName:function(className,parent){
var elem = [],
node = parent != undefined&&parent.nodeType==1?parent.getElementsByTagName('*'):document.getElementsByTagName('*'),
p = new RegExp("(^|\\s)"+className+"(\\s|$)");
for(var n=0,i=node.length;n<i;n++){
if(p.test(node[n].className)){
elem.push(node[n]);
}
}
return elem;
}
【四】删除CSS类名
removeClassName:function(node,className){
var par = new RegExp(className,'g');
node.className = node.className.replace(par,'');
}
最新文章
- brew管理node的版本
- 可惜Java中没有yield return
- 关于Xcode7更新之后使用 SDWebImage 图片加载不出来
- servlet 和filter 的生命周期说明
- IOS面试题总结
- web app 自适应 弹性布局之rem
- USB的逻辑值和用途值有什么区别?
- Effective C++_笔记_条款01_视C++为一个语言联邦
- 【年终分享】彩票数据预测算法(一):离散型马尔可夫链模型实现【附C#代码】
- AI matplotlib
- ****** 四十二 ******、软设笔记【网络基础】-IPv6协议、常用的网络协议
- ionic2 处理android硬件返回按钮
- Mybatis自动生成,针对字段类型为text等会默认产生XXXXWithBlobs的方法问题
- 两层LSTM的使用
- paymob浙江正和
- IntelliJ IDEA tomcat 远程Ddbug调试
- Singleton(单例)模式和Double-Checked Locking(双重检查锁定)模式
- org.codehaus.jackson.map.JsonMappingException: Can not construct instance of java.util.Date from String value '20Spring Jackson 反序列化Date时遇到的问题
- 巧用style的另类写法
- win2003设置单用户登录