jQuery从一个字符串调用函数
这个问题在这里已经有了答案:
您可以使用括号表示法使用包含标识符的字符串访问成员:
var target = 'next';
$("foobar")[target](); // identical to $("foobar").next()
如果你想使用jQuery,答案非常优雅。 因为jQuery是一个对象(可以像数组一样访问) - 你可以使用$("selector")[target]()
。
例子:
var target = 'next';
jQuery("selector")[target]();
如果你知道你可以信任输入,这将起作用。 但是,如果你不确定这一点,你应该在试图运行它之前检查函数是否存在,否则你会得到一个错误。
var target = 'doesNotExist';
if (jQuery.isFunction(target)) {
jQuery('selector')[target]();
}
在我的情况下,我需要从rel属性获取值,然后将其解析为函数,这对我有用。
$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;
}
和形式
<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>
链接地址: http://www.djcxy.com/p/94821.html