一些简单的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 }
时间: 2024-11-02 15:29:53

一些简单的Js代码的封装的相关文章

实际项目中积累的一些关于事件的简单应用JS代码段(能力有限,不喜轻喷,23333)

1:鼠标移入图片显示另一张图片 var yuanquan_1 = document.getElementById("yuanquan_1" ); yuanquan_1. onmouseover = function () { yuanquan_1.src = "img/youhuigoujiu-2.png"; } yuanquan_1. onmouseout = function () { yuanquan_1.src = "img/youhuigouji

js代码分离方法封装

var oldtd1; var oldtd2; var oldtd3; var indexnum = 0; //document.getebyid简写方法 function domByid(domid) { return document.getElementById(domid); } function domsByclass(domclass) { return document.getElementsByClassName(domclass); } //添加菜单方法 function Ad

JS代码指导原则

一.什么是平稳退化? 如果含有JS代码的网页在用户浏览器不支持JS(或者禁用JS)时,用户仍然能够顺利浏览(网站功能正常,只是视觉效果可能差一些),那么这个网页就能够平稳退化 网页能够平稳退化是很必要的,因为JS向来名声不好(各种广告,各种弹窗,甚至还有XSS等等阴暗的东西),所以有一个用户群是习惯禁用浏览器的JS支持的,这个用户群可能不大,但是作为编码人员应该尽量让自己的代码尽可能的完善(就像培养自己的孩子一样),我们应该考虑到这种情况,给各种用户完美的体验 如果上面的理由还不够充分,那么可能

JS类的封装及实现代码

js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类. 1. 定义js类 js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类. 代码如下: function ShapeBase() { this.show = functi

JS类的封装及实现代码(转)

js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类. 1. 定义js类 js并不是一种面向对向的语言, 没有提供对类的支持, 因此我们不能像在传统的语言里那样 用class来定义类, 但我们可以利用js的闭包封装机制来实现js类, 我们来封装一个简的Shape类. 代码如下: function ShapeBase() { this.show = functi

JS代码的简单重构与优化

JS代码的简单重构与优化(适合新手) 原文  http://www.cnblogs.com/similar/p/5016424.html Demo . 1 //bad if (age > 20) { return true; } else { return false; } //good return age > 20; 这种一看就明白吧,没什么说的. Demo . 2 //bad for (var i = 0; i < arr.length; i++) { //do something

一个基于 EasyUI 的前台架构(3)封装操作Tabs的JS代码

一般来说,系统框架的主内容区会引入另一个独立的 Web 页面来实现系统的功能,所以在在 Tabs 里的每一个标签页里使用 iframe 标签来引入子页面.所以这里可以将 Tabs 的 Content 属性值设为一个 <iframe> 标签即可.比如: $("#tabs").tabs('add',{ title: "百度搜索", content: '<iframe style="width:100%;height:100%;" s

简单的JS表单验证效果代码

简单的JS表单验证代码:表单验证几乎是不可缺少的,有的表单验证是在后台完成的,有的则是使用JavaScript在在前端完成基本的验证,这样可以有效的减轻服务器的压力,下面就介绍一下JS实现的最简单的表单验证.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://w

封装的一套简单轻量级JS 类库(RapidDevelopmentFramework.JS)

1.最近好久没有更新自己的博客了,一直在考虑自己应该写一些什么.4.2日从苏州回到南京的路上感觉自己的内心些崩溃和失落,我就不多说了? 猛然之间我认为自己需要找一下内心的平衡.决定开发属于自己一套快速开发的JS 框架.因为早前也一直想开发一套快速的JS 框架,但是种种原因一直没用突破点也就不了了之了,开发这套JS 的框架主要是为了方便自己使用以,及其他开发人员的使用.通用的功能包主要括JS 的校验 上传图片 视频 语音  以分页 时间插件的选择 和ajax 请求以及其他的第三方的插件的混合使用等