一些简单的Js代码的封装
1 function getById(id) {
2
3 }
4
5 function getAttr(el, k) {
6
7 }
8
9 function setAttr(el, k, v) {
10
11 }
12
13 function addClass(el, k) {
14
15 }
16
17 function removeClass(el, k, v) {
18
19 }
20
21 function getStyle(el, k) {
22
23 }
24
25 function setStyle(el, k, v) {
26
27 }
28
29 function addEvent(el, type, func) {
30
31 }
32
33 function removerEvent(el, type, func) {
34
35 }
封装的实现:
1 function getById(id) {
2 return id ? document.getElementById(id) : null;
3 }
4
5 function getAttr(el, k) {
6 if (el) {
7 return el.getAttribute[k];
8 }
9 return null;
10 }
11
12 function setAttr(el, k, v) {
13 if (el) {
14 el.setAttribute(k, v);
15 }
16 }
17
18 function addClass(el, k) {
19 if (el) {
20 var arr = el.className.split(' ');
21 var arrClass = [];
22 var isExist = false;
23 for (var i = 0, len = arr.length; i < len; i++) {
24 if (arr[i] != '') arrClass.push(arr[i]);
25 if (arr[i] == k) {
26 isExist = true;
27 break;
28 }
29 }
30 if (isExist == false) {
31 arrClass.push(k);
32 var cls = arrClass.join(' ');
33 el.className = cls;
34 setAttr(el, 'class', cls)
35 }
36 }
37 }
38
39 function removeClass(el, k) {
40 if (el) {
41 var arr = el.className.split(' ');
42 var arrClass = [];
43 for (var i = 0, len = arr.length; i < len; i++) {
44 if (arr[i] != '' && arr[i] != k) arrClass.push(arr[i]);
45 }
46
47 var cls = arrClass.join(' ');
48 el.className = cls;
49 setAttr(el, 'class', cls)
50 }
51 }
我们看到,firefox可以获取class列表,而ie几个浏览器只有className这一属性,所以操作class时候我们要用到。
但是获取当前样式却比较麻烦,还需要计算各个样式表的比重,我们这里用不到就暂时忽略了。
以上简单测试了一番,基本没有问题,我最后加上事件绑定,便暂时告一段落。
1function addEvent(el, type, func) {
2 if (el) {
3 if (el.attachEvent) {
4 el.attachEvent('on' + type, func);
5 } else {
6 el.addEventListener(type , func, false);
7 }
8 }
9 }
10
11 function removerEvent(el, type, func) {
12 if (el) {
13 if (el.attachEvent) {
14 el.detachEvent('on' + type, func);
15
16 } else {
17 el.removeEventListener(type, func, false);
18 }
19 }
20 }
一些简单的Js代码的封装的更多相关文章
- angularJS入门小Demo【简单测试js代码的方法】
1.首先建立一个文件夹 demo, 2.在其中建立一个文本文档,改名为 demo-1.html, 3.把html中要引入的 js 文件拷贝到 demo目录下, 4.然后用 Notepadd++ 编辑刚 ...
- 两段简单的JS代码防止SQL注入
1.URL地址防注入: //过滤URL非法SQL字符var sUrl=location.search.toLowerCase();var sQuery=sUrl.substring(sUrl.inde ...
- 简单倒计时js代码
//倒计时 var timer=null; var interval = 1000; function ShowCountDown(year,month,day,hour,minute,second, ...
- 用简单的JS代码制作计算器
代码+注释一共不到200行,是练习交流的必备良药 主界面如下: 操作示意图: 以下是代码部分 HTML: <div> <table class="window"& ...
- 实际项目中积累的一些关于事件的简单应用JS代码段(能力有限,不喜轻喷,23333)
1:鼠标移入移出显示另一张图片 var yuanquan_1 = document.getElementById("yuanquan_1" ); yuanquan_1. onmo ...
- JS代码指导原则
一.什么是平稳退化? 如果含有JS代码的网页在用户浏览器不支持JS(或者禁用JS)时,用户仍然能够顺利浏览(网站功能正常,只是视觉效果可能差一些),那么这个网页就能够平稳退化 网页能够平稳退化是很必要 ...
- js封装的三级联动菜单(使用时只需要一行js代码)
前言 在实际的项目开发中,我们经常需要三级联动,比如省市区的选择,商品的三级分类的选择等等. 而网上却找不到一个代码完整.功能强大.使用简单的三级联动菜单,大都只是简单的讲了一下实现思路. 下面就给大 ...
- JS类的封装及实现代码
js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类. 1. ...
- JS代码的简单重构与优化
JS代码的简单重构与优化(适合新手) 原文 http://www.cnblogs.com/similar/p/5016424.html Demo . 1 //bad if (age > 20) ...
随机推荐
- Murano Deployment
2015-09-14 05:53:02 — Action deploy is scheduled 2015-09-14 05:53:03 — Unable to load due to 'could ...
- 自己的spring boot starter
这篇文章说的更加详细具体:https://www.cnblogs.com/hjwublog/p/10332042.html 在刚开始看spring boot的时候,发现这么多starter,不免觉得好 ...
- PHP算法——生成唯一字符串
经常遇到忘记密码的情况,点击一下忘记密码,然后收到更改密码的链接,连接中往往都会有一段很长而且很乱的字符串.试想一下,如果出现了重复的字符串,那岂不是把别人的密码给重置了? 所以产生唯一数对于网站的安 ...
- EFCodeFirst 数据迁移问题~
问题描述:将项目从TFS载下来 然后敲update-database 进行数据迁移 提示:Update-Database : 无法将“Update-Database”项识别为 cmdlet.函数.脚 ...
- Windbg工具使用
https://www.cnblogs.com/startpoint/p/4194052.html https://www.cnblogs.com/lyl6796910/p/7613664.html ...
- 从零开始的全栈工程师——js篇(正则表达式)
正则 就是一条规则 用来检验字符串的格式 目标就是字符串 只要是通过表单提交的数据 都是字符串1.正则定义var reg = new RegExp( )var reg = /格式/ <--简写 ...
- 认识less和webstrom的less配置
认识less和webstrom的less配置 今天完成的事情: 首先第一件事情是,整理一下常用的颜色摄取 #F1F1F1 google的设置页面的body的背景颜色 #FFF 为google的内容块的 ...
- FastReport Site授权联合推广计划 彻底保障商业化开发,还送iPhone 5s
上月慧都与报表控件开发商Fastreport联合推出的优惠活动,获得中国开发者的巨大反响.本月慧都再次发力,与Fast Reports, Inc.联合推出FastReport Site授权推广计划.活 ...
- Web前端开发规范(一)
1.前言 网页开发技术从1989年开始至今已经走过了20余年,从最初纯粹的学术交流,到门户网站.电子商务网站.博客.E-mail.Web游戏.SNS网站等,以及到如今的移动Web网站(其实可以认为是P ...
- http缓存基本介绍
https://www.helloweba.com/view-blog-414.html