0
function ge(id){
    this.id=id;
    this.d=document;
    this.w=window;
    return document.getElementById(id);
}
ge.prototype={
    set_in:function(value){
        this.innerHTML=value;
    },
    getIn:function(){
        return document.getElementById(this.id).innerHTML;
    },
    foc:function(){
        document.getElementById(this.id).focus();
    }
}

我想做的是,如果我调用 ge('id').getIn() 将导致该元素的 innerHTML

4

2 回答 2

2

DOM Node在该构造函数中返回 a 。我猜您将它用作构造函数,因此您覆盖了Object它实际上应该返回的内容。

跳过

return document.getElementById(id);

你很好。您可以将该节点引用存储在某个this.myRef值中。


删除该return语句后,您需要创建一个实例。像

var myGE = new ge('id');

然后你终于可以打电话了

myGE.getin();
于 2012-04-12T14:25:46.520 回答
1

您需要调用new ge("header").getIn();而不是仅仅调用ge("header").getIn();- 或创建另一个返回新实例的函数ge- 例如:

function newge(id) {
    return new ge(id);
}
function ge(id){
    this.id=id;
    this.d=document;
    this.w=window;
    return this; //document.getElementById(id);
}
ge.prototype={
    set_in:function(value){
        this.innerHTML=value;
    },
    getIn:function(){
        return document.getElementById(this.id).innerHTML;
    },
    foc:function(){
        document.getElementById(this.id).focus();
    }
}
newge("header").getIn();
于 2012-04-12T14:28:55.583 回答