2

次のようなオブジェクトを宣言すると

var obj =function(element){
return{
wide:element.clientWidth
}}

私はそれを次のように宣言しなければなりません

var fdiv=new obj(document.etc.etc.);

のように呼び出します

fdiv.wide;

しかし、これは私のコードをかなり制限しています。要素ごとに新しい obj を宣言する必要があります。私の質問は、動的に指定されたノードでプロパティを使用するために likenodeI_want.obj.wideまたはthis のようなものを使用できるようにするために、要素名を動的に設定する方法です。obj.nodeI_want.wide注:clientWidth プロップ。は、コード内で独自のプロパティに置き換えられることを明確にするための単なる例です。

4

2 に答える 2

1

あなたは延長したいようですHTMLElementprototypeこれを行う適切な方法は、メソッドをofに追加することですHTMLElement

例(元の関数コードは使用しませんでした。これは、達成しようとしたものが非常に曖昧であるためです):

HTMLElement.prototype.getMyWidth = function() {
    return this.clientWidth;
};

HTML要素を参照してください

于 2015-04-06T18:43:57.897 に答える
1
function ElementObj(element){
    this.element = element;
    this.width = this.element.offsetWidth;

    return this;
}

これで、次のことができます。

var elem1 = new ElementObj(document.getElementById('div1'));
var elem2 = new ElementObj(document.getElementById('div2'));

elem1 がオブジェクトを返す場所:

{
    element: DOMElement
    width: 100
}
于 2015-04-06T18:48:35.867 に答える