我试图通过网络搜索找到方法,但我做不到。
我想要做的是调度如下的jQuery方法;
var dispatchFunction = function (selector, jQueryMethod, jQueryArgs) {
jQuery(selector)[jQueryMethod].apply(this, jQueryArgs);
}
虽然它看起来像是
的结果jQuery("#id")["methodName"]
是一个功能。但是当我在javascript控制台中调用'apply'到该函数时,它不会像下面那样工作;
func = jQuery("#todo")["text"];
=> function (e){return b.access(this,function(e){return e===t?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)}
jQuery("#todo")["text"]();
=> "abc"
func.apply(this);
=> ""
func.apply(this, []);
=> ""
有没有办法做到这一点?
答案 0 :(得分:1)
您需要做的是:
var dispatchFunction = function (selector, jQueryMethod, jQueryArgs) {
var selection = jQuery(selector);
selection[jQueryMethod].apply(selection, jQueryArgs);
}
您可能希望在JS中阅读有关this
关键字和函数与方法调用的更多信息。