您的位置:首页 > Web前端 > HTML

扩展IE不支持的属性HTMLElement,在每个获取的元素下,加上指定的方法

2012-05-19 09:13 711 查看
var domMethod = {
extendDom: function(name, fn) {
if(!document.all) {
//不是ie浏览器
HTMLElement.prototype[name] = fn;
} else {
//将原来的document.createElement方法赋给临时变量
var _createElement = document.createElement;
//再来扩展document.createElement方法
document.createElement = function(tag) {
//将原来这个方法再赋值回来,给一个变量
var elem = _createElement(tag);
//再这个变量身上,再添加一个属性,并指向一个方法
elem[name] = fn;
//返回这个变量
return elem;
}
/*
思路:在不改变原来功能的情况下,再加上一个新的属性,这个新的属性和一个方法绑定。
*/
var _getElementById = document.getElementById;
document.getElementById = function(id) {
var elem = _getElementById(id);
elem[name] = fn;
return elem;
}

var _getElementsByTagName = document.getElementsByTagName;
document.getElementsByTagName = function(tag) {
var arr = _getElementsByTagName(tag);
for(var i=0; i<arr.length; i++) {
arr[i][name] = fn;
}

return arr;
}
}
}
}
domMethod.extendDom("next", function() {
element = this;
do{
element = element.nextSibling;
}while(element && element.nodeType != 1);

return element;
});


var h1 = getElementById("h1");

h1.next().style.background = "#f90";
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  扩展 ie function 浏览器
相关文章推荐