如果我有這個模塊的模式:是可以鏈接的document.getElementById方法嗎?
var MODULE = (function(window){
var myPublicStuff = {};
myPublicStuff.myPublicMethod = function(e){
return e;
};
return myPublicStuff;
})(window); //edit: forgot to put I have this
這工作:(編輯爲清楚起見)
v = document.getElementById('some-element'); //works as expected
MODULE.myPublicMethod(v); //works.
但是,這並不工作,
MODULE.myPublicMethod().document.getElementById('some-element');
或
document.getElementById('some-element').MODULE.myPublicMethod().
我認爲如果在獄中的前一個成員返回一個值,你可以鏈接到下一個鏈接?這在這裏不起作用,但我不知道爲什麼。
編輯:感謝所有的答案。我想要做的就是獲取元素,並通過鏈接將該方法打印回。就這樣。如果我把'btnPrint'放在'btnPrint'中,我想讓它給我<button type="button" id="btnPrint" class="btn">...</button>
如果我在控制檯上得到了ElementById,那麼如果我首先爲模塊使用一個變量(這是有道理的),那就是我所得到的。我只想做同樣的事情用鏈式方法。
編輯:爲了完整,這是特拉維斯上的jsfiddle把什麼(感謝):
<button type="button" id="btnPrint" class="btn">...</button>
Element.prototype.myPublicMethod = function(){
//in the prototype scheme that JavaScript uses,
//the current instance of the Element is *this*,
//so returning this will return the current Element
//that we started with.
return this;
}
console.log(document.getElementById("btnPrint").myPublicMethod());
我同意。這看起來很糟糕,除非絕對必要
不myPublicMethod()返回一個不確定的,如果叫沒有任何輸入PARAMS? – jithinpt
是的。這就是爲什麼我想調用getElementById函數。 – johnny
'MODULE.myPublicMethod()。document.getElementById('...')'只有在'MODULE.myPublicMethod'返回一個具有'document'屬性的對象時纔有效,後者又具有'getElementById'屬性。但是'document'是'window'的全局屬性,所以你不能僅僅把它作爲別的屬性來使用。 – Xufox