也许我不想做我想做的事,我只是希望。如果没有,没有问题,我会写一个班级。我只是想避免这种情况。
当然,我试图在网上搜索答案。我在SO和jQuery论坛上找到了一些东西。与this或this或this一样。
但我想以不同的方式做到这一点:
我想直接调用它,我不想使用eval !
我想做的事情
var target = '#id';
var method = 'removeClass';
var className = 'classToShow';
$(taget).method(className);
我得到了这个:
TypeError: $(...).method is not a function
[Learn More]
有没有办法做到这一点?
答案 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
,而是target
。 class
是javascript中的注册名称,因此您无法使用它。
可以选择该方法作为$()
的属性。
var target = '#id';
var method ='removeClass';
var myClass = 'classToShow';
$(target)[method](myClass);