重複の可能性:
Javascript で DOM を拡張できますか?
Element にメソッドとプロパティを追加しようとしています。グローバルクラスとしてリストされていません。次のように String を拡張できます。
String.prototype.dosomething = function { ... };
私はこのように試みます(それはより大きく、これが基本です):
function $id(str){
this.element = document.getElementById(str);
return element;
}
var myElem = $id('myId'); // WORKS !!!
$id.prototype.dosomethig = function ( ... };
var myValue = $id('myId').dosomething(); // DOESN'T WORK !!!
私は他の方法で試しますが、クラスを拡張しようとすると、常に同じであるという点は機能しません。これを回避する方法はありますか?私はjQueryがこれを行うことを知っていますが、私は自分のonwをやりたいです-できるなら、できます...そうですか?
編集: Safari と Firefox で既に動作しているコードの下...
Element.prototype.pos = function(){
var curleft = this.offsetLeft;
var curtop = this.offsetTop;
var scrleft = this.scrollLeft;
var scrtop = this.scrollTop;
var pElement = pElementScr = this.offsetParent
while(pElement){
curleft += pElement.offsetLeft;
curtop += pElement.offsetTop;
pElement = pElement.offsetParent;
}
while(pElementScr){
scrleft += pElementScr.scrollLeft;
scrtop += pElementScr.scrollTop;
pElementScr = pElementScr.offsetParent;
}
return {x:this.offsetLeft, y:this.offsetTop};
}
他の多くのdivの内側でもdivの位置を示します。ライブラリの他の多くの問題を解決した後、IE8 でテストしてみます。