我正在尝试创建一个函数,根据我正在与之交互的元素的类调用其他函数.
我希望能够使用元素的类来调用函数,而不是使用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语句来驱动它)然后让该函数执行它需要做的任何事情.
我看错了吗?我应该采用不同的方式吗?谢谢
我看错了吗?
是.这是一个更合理的对象方法(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)
此外,您可能希望重新考虑使用类名来存储信息.如果有多个课程,则无法保证您想要的课程是第一个课程.相反,请查看数据属性.