jQuery 从字符串调用函数
是否可以使用字符串来调用函数?
(即)我有一个变量 var target = 'next';
。我想使用这个字符串调用 jquery 方法 next()
。我应该使用 target + '()'
(这有点愚蠢)来调用 next()
吗?
我知道可以使用条件语句来完成。由于它是从用户处获取的字符串,但很难使用条件语句来实现所有这些。
在我的 jQuery 插件中,用户将传递值 prev
、siblings
等作为选项,以便执行相应的 jQuery 方法。
我该如何实施?
Is it possible to call a function by using the strings ?
(i.e) I have a variable var target = 'next';
. Using this string I want to call the jquery method next()
. Should i use target + '()'
(this is bit foolish) to call next()
?
I know it can be done using conditional
statements. Since it is a string got from users, but it is difficult to use conditional statements for all that.
In my jQuery plugin, users will pass the value prev
, siblings
etc as options, so that the respective jQuery methods will be executed.
How do I implement this ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用 括号表示法 来访问包含以下字符串的成员标识符:
You can use the bracket notation to access the member with a string containing the identifier:
如果您想使用 jQuery,答案非常优雅。因为 jQuery 是一个对象(可以像数组一样访问) - 您可以使用
$("selector")[target]()
。示例:
如果您知道可以信任输入,则这将起作用。但是,如果您不确定这一点,则应该在尝试运行该函数之前检查该函数是否存在,否则会收到错误消息。
If you're wanting to use jQuery, the answer is quite elegant. Because jQuery is an object (which can be accessed like an array) - you can use
$("selector")[target]()
.Examples:
This will work if you know that you can trust the input. However, if you're not sure of this, you should check that the function exists before trying to run it otherwise you'll get an error.
就我而言,我需要从 rel 属性获取值,然后将其解析为函数,这对我有用。
和形式
In my case I needed to get the value from a rel attribute and then parse it as a function, this worked for me.
and the form