我有一个JavaScript变量,其中包含jQuery方法的名称:
var method = 'attr("src")';
如何使它像这样工作:
console.log($('img').method)
我试过了
console.log($('img')[method]())
但是它给出了这个错误:
Uncaught TypeError: Object [object Object] has no method 'attr("src")'
最佳答案
您遇到的问题是方法名称及其参数都编码在单个字符串中。
相反,如果您有一个首先包含方法名称然后包含参数的数组,那么按照我刚刚将其合并的以下琐碎插件,这将很容易:
(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);
见http://jsfiddle.net/7rBDe/1/
关于javascript - 调用以变量命名的jQuery方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15936011/