js操作Dom的一些方法简化
2015-02-05 10:14
686 查看
众所周知JQ的选择符很强大,一些看起来很难实现的功能只要在$符号中传入简单的字符串就可以获取到各种层级关系的DOM,而却不用考虑浏览器的兼容性。但有时候在做小项目的时候并不需要引入JQ,而又不想频繁繁琐地调用原始方法,那么我们可以考虑对它们做一点小小的修改,来帮助你在以后需要用到它们的时候变得方便简单。下面是一些基本方法的封装处理:
1.document.getElmentById();最基本,最常用的方法。
2.document.getElementsByTagName();
3.document.getElementsByClassName();在IE版本下没有此方法,因此要写浏览器的兼容
4.通过某个属性查找对象或者对象集合
5.addEventLister()方法,绑定事件的方,IE下无此方法,也需要兼容
上面的返回都是包含DOM对象的数组或者单个对象,与JQ不同,我们并没有构造出一个新的对象来,它们可以继续调用原始的api。
1.document.getElmentById();最基本,最常用的方法。
var $ = function (id) { return typeof id ==="string"?document.getElementById(id) : id; }
2.document.getElementsByTagName();
var $$ = function (tagname,oParent) { return (oParent||document).getElementsByTagName(tagname) };
3.document.getElementsByClassName();在IE版本下没有此方法,因此要写浏览器的兼容
var $$$ = function (classname,oParent) { var result = [], reClass = new RegExp("(\\s|^)" + classname + "($|\\s)"),//空格在前或者在后 element = $$("*",oParent); for(var i =0;i<element.length;i++){ if(reClass.test(element[i].className)) result.push(element[i]); } return result; }
4.通过某个属性查找对象或者对象集合
var findByAttr = function(n, v) {//通过某个属性找到元素 var all = document.all, len = all.length, result = []; for(var i=0; i<len; i++) { var at = all[i].getAttribute(n); if(!at) continue; if( at == v ) result.push(all[i]); } return result; }
5.addEventLister()方法,绑定事件的方,IE下无此方法,也需要兼容
var addEvent = function (o, e, f) {//需要绑定的DOM对象,时间名称,回调方法,在webkit下默认捕获事件。 o.addEventListener ? o.addEventListener(e, f, false) : o.attachEvent('on'+e, function(){f.call(o)}) }
上面的返回都是包含DOM对象的数组或者单个对象,与JQ不同,我们并没有构造出一个新的对象来,它们可以继续调用原始的api。
相关文章推荐
- js dom操作获取节点的一些方法
- 原生JS操作DOM的一些常用方法集合【转】
- 浅析JS操作DOM的一些常用方法
- 怎么用js操作dom节点的一些方法
- 原生JS操作DOM的一些常用方法集合【转】
- js中一些操作DOM的属性和方法
- js操作json的一些方法以及注意点及清缓存的方式
- js操作dom元素属性和方法
- JS中操作IE浏览器的一些方法整理
- js操作DOM常用方法
- JS操作DOM元素属性和方法(转)
- js操作表格的一些简单方法
- JS操作DOM元素属性和方法
- js操作dom元素的属性和方法
- 一些JS、jQuery、DOM操作细节
- js之DOM操作中获取属性方法
- 原生js操作dom的方法
- JS_里操作_DOM_的几个标准属性与方法
- 一个简单的上传附件,并显示附件的方法.(JS的DOM操作取得input file的值.)
- 一些常用的JS (JONEAjax) 获取dom 对象,ajax操作,读写cookie