如何使用element.myobj.prop等具有对象属性的元素

How to use element with object property like element.myobj.prop

本文关键字:对象 属性 元素 何使用 element myobj prop      更新时间:2023-09-26

如果我声明一个类似的对象

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

我必须像一样申报

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

像一样呼叫

fdiv.wide;

但这相当限制了我的代码。我必须为每个元素声明新的obj。我的问题是,我如何将元素名称设置为动态,以便能够像nodeI_want.obj.wideobj.nodeI_want.wide或类似的任何东西一样使用我的属性和动态给定的节点。注意:clientWidth属性。只是一个例子,说明它将在我的代码中用我自己的属性替换。

您似乎想要扩展HTMLElement。正确的方法是将您的方法添加到HTMLElementprototype中。

例如(我没有使用你原来的函数代码,因为它试图实现的目标很模糊):

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

请参阅HTMLElement

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
}