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";