jQuery:使用变量作为函数名

ntg*_*ner 4 html jquery

我正在尝试创建一个函数,根据我正在与之交互的元素的类调用其他函数.

我希望能够使用元素的类来调用函数,而不是使用if语句.示例如下:

function validate(thisInput){
    var thisClass = thisInput.attr("class").split(' ')[0];
    validate + class(thisInput); 
    /*This is what I would like to happen:
    the class is grabbed from above, then that class name (whatever it is)
    calls it's own function.  I will be creating a function for each class.
    */
}

function validateClassname(thisInput) {
    //do something
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我正在尝试找到类名,使其成为自己的函数(不使用if语句来驱动它)然后让该函数执行它需要做的任何事情.

我看错了吗?我应该采用不同的方式吗?谢谢

JJJ*_*JJJ 7

我看错了吗?

是.这是一个更合理的对象方法(foo并且bar是类名):

var validationRules = {
    foo: function( input ) { /* whatever */ },
    bar: function( input ) { /* whatever */ }
}

function validate(thisInput){
    var thisClass = thisInput.attr("class").split(' ')[0];

    validationRules[ thisClass ]( thisInput );
}
Run Code Online (Sandbox Code Playgroud)

此外,您可能希望重新考虑使用类名来存储信息.如果有多个课程,则无法保证您想要的课程是第一个课程.相反,请查看数据属性.