For example for this.parentNode
I would like to just write this.p
or instead of
document.getElementById(\'someid\')
just write d
This article from perfectionkills.com will probably give you some insight into how it's done, and why you shouldn't do it.
(By the way, jQuery doesn't extend DOM elements. They use DOM wrappers instead.)
I would strongly suggest not attempting to do this, for a few reasons:
HTMLElement
prototype and allow you to augment it, there's no guarantee that it will work as you expect.HTMLElement
prototype, you risk naming collisions and hard-to-detect bugs.Instead, I would suggest creating wrapper objects around DOM nodes as jQuery, YUI and other libraries do.
Kangax has written a good article on this, covering all these points and more.
Although you can prototype on the HTMLElement
in many browsers - Internet Explorer (6,7,8) is NOT one of them. AFAIK, IE9 does support this (though I haven't tested it).
For browsers that do handle it, you can do:
HTMLElement.prototype.doHello = function(thing){
alert('Hello World from ' + thing);
};
In a word, don't. It is best not to modify objects you don't own.
This is particularly true for HTMLElement
, which you cannot modify in some browsers.