调用变量中命名的jQuery方法

eaw*_*wer 1 javascript jquery

我有一个JavaScript变量,其中包含jQuery方法的名称:

var method = 'attr("src")';
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它像以下一样工作:

console.log($('img').method)
Run Code Online (Sandbox Code Playgroud)

我试过了

console.log($('img')[method]())
Run Code Online (Sandbox Code Playgroud)

但它给出了这个错误:

Uncaught TypeError: Object [object Object] has no method 'attr("src")'
Run Code Online (Sandbox Code Playgroud)

Aln*_*tak 9

你的问题是,你有两个方法的名称它的参数在单个字符串编码.

如果您有一个数组首先包含方法名称然后是参数,这将很容易,根据以下简单的插件,我刚刚敲了一下:

(function($) {
    $.fn.invoke = function(args) {
        var method = args.shift();
        return $.fn[method].apply(this, args);
    }
})(jQuery);

var method = ['attr', 'src'];
var src = $('img').invoke(method);
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/7rBDe/1/