jQuery:从string执行方法

时间:2011-07-06 11:33:05

标签: jquery

有没有办法在jQuery中按名称调用方法?例如:

var condition = true;
$('div').execute(condition ? 'show':'hide');

2 个答案:

答案 0 :(得分:4)

是的,使用[]表示法访问jQuery对象的属性(而不是使用.的文字对象):

$('div')[condition ? 'show' : 'hide']();

你也可以这样做:

$('div').toggle(condition);

http://api.jquery.com/toggle/

http://www.jibbering.com/faq/faq_notes/square_brackets.html

修改:如果您更喜欢自己的编码风格,可以添加以下内容:

$.fn.execute = function(a) {
    return this[a].apply(this, [].slice.call(arguments, 1));
}

然后你可以这样做:

$('div').execute(condition ? 'show' : 'hide');

$('div').execute(condition ? 'keydown' : 'keyup', function() {...});

答案 1 :(得分:2)

Javascript对象基本上是字典。

var condition = true;
$('div')[condition ? 'show':'hide']();