从一个string的jQuery调用函数
有可能通过使用string来调用一个函数吗?
 (即)我有一个variablesvar target = 'next';  。 使用这个string我想调用jquery方法next() 。 我应该使用target + '()' (这是愚蠢的)来调用next() ? 
 我知道这可以使用conditional语句来完成。 由于这是从用户那里得到的string,但是很难为所有这些使用条件语句。 
 在我的jQuery插件中,用户将传递值prev , siblings等作为选项,以便相应的jQuery方法将被执行。 
我如何实现这个?
您可以使用括号表示法以包含标识符的string访问成员:
 var target = 'next'; $("foobar")[target](); // identical to $("foobar").next() 
 如果你想使用jQuery,答案是非常优雅的。 因为jQuery是一个对象(可以像数组一样访问) – 你可以使用$("selector")[target]() 。 
例子:
 var target = 'next'; jQuery("selector")[target](); 
如果你知道你可以信任这个input,这将起作用。 但是,如果您不确定这一点,则应在运行之前检查该函数是否存在,否则将会出现错误。
 var target = 'doesNotExist'; if (jQuery.isFunction(target)) { jQuery('selector')[target](); } 
在我的情况下,我需要从rel属性中获取值,然后将其parsing为一个函数,这对我有用。
 $jq('#mainbody form').submit(function(e){ var formcheck = $jq(this).attr('rel'); if (typeof window[formcheck] === 'function'){ formok = window[formcheck](); e.preventDefault(); } }); function maincheck(){ alert("Checked"); return false; } 
和forms
 <div id="mainbody"> <form action="mainpage.php" method="post" rel="maincheck"> <input type="hidden" name="formaction" value="testpost"> <label>Field 1 <input type="text" name="field1" value="<?=$_POST['field1'];?>"></label><br> <label>Field 2 <input type="text" name="field2" value="<?=$_POST['field2'];?>"></label><br> <input type="submit" value="Submit Form"> </form> </div>