如何向Dojo添加新方法?

时间:2011-07-24 14:57:43

标签: javascript dojo

您能告诉我们如何向Dojo添加新方法吗?

它适用于我,但仅适用于 NodeList

dojo.extend(dojo.NodeList, {
    foo: function() {
        alert(1)
    }
});

dojo.byId("foo").foo();

但是,我需要元素

dojo.byId("id").myMethod();

1 个答案:

答案 0 :(得分:4)

dojo.byId函数只是document.getElementById的别名。因此它返回一个vanilla domNode,你建议将一个新方法添加到Element,而不是Dojo。

Dojo故意不会改变Element,因为某些人认为这是不好的做法(例如,它可能会与其他框架发生冲突)。

如果你想这样做,你可以为Element的原型添加函数:

Element.prototype.myMethod = function() { 
    alert("My content is: " + this.innerHTML);
};

然后你可以这样做:

dojo.byId("id").myMethod();