直接从变量名调用jQuery函数

时间:2016-07-26 12:34:39

标签: jquery

也许我不想做我想做的事,我只是希望。如果没有,没有问题,我会写一个班级。我只是想避免这种情况。

当然,我试图在网上搜索答案。我在SO和jQuery论坛上找到了一些东西。与thisthisthis一样。

但我想以不同的方式做到这一点:

我想直接调用它,我不想使用eval

我想做的事情

var target = '#id';
var method = 'removeClass';
var className = 'classToShow';

$(taget).method(className);

我得到了这个:

TypeError: $(...).method is not a function
[Learn More]

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:5)

由于jQuery(因此$变量)引用一个对象,您可以使用括号表示法,如下所示:

$(target)[method](className);

var target = '#id';
var method = 'removeClass';
var className = 'classToShow';
$(target)[method](className);
.classToShow {
  color: red; /* this colour will be removed */
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="id" class="classToShow">Foo bar</div>

答案 1 :(得分:0)

你做的一般都是正确的。但是您的变量未命名为$id,而是targetclass是javascript中的注册名称,因此您无法使用它。

可以选择该方法作为$()的属性。

var target = '#id';
var method ='removeClass';
var myClass = 'classToShow';

$(target)[method](myClass);