你可以,是的.你是否应该完全是另一个问题,答案几乎肯定是“不”(就执行字符串而言;就下面所示的替代方案而言,有时它是有用的).

你评估代码片段的方式(你所拥有的不只是一个函数名,因为())将使用可怕的eval:

eval(fn);

几乎总是比使用eval更好的选择. (见下文.)

评估示例:

$("#example").on("click", function() {

var fn = $("#example").attr("data-function-name");

eval(fn);

});

function showAllElements() {

alert("showAllElements was called");

}

Click Me

其中一个更好的选择是将函数引用存储为对象的属性,然后使用括号表示法根据函数名称获取函数引用:

例:

var functions = {

showAllElements: function() {

alert("showAllElements was called");

}

};

$("#example").on("click", function() {

var fn = $("#example").attr("data-function-name");

functions[fn]();

});

Click Me

请注意,我只是存储函数名称,而不是任意代码.

更新:如果您的功能嵌套在对象内,请参见canon’s answer,以便巧妙地处理它,例如: mumble.foo.doSomething,使用reduce. (reduce是ES5功能,但它是可填充的.)

旁注:除非您执行的操作不仅仅是检索data- *属性的值,否则请不要使用数据,请使用attr. data初始化元素的数据高速缓存,读入该元素的所有data- *属性,并将它们复制到高速缓存.如果你没有使用它,没有理由这样做.您使用数据访问data- *属性的想法是一种常见的误解.

html函数属性的赋予,你可以将javascript函数名称设置为html属性吗?相关推荐

  1. js如何改变HTML属性,javascript – 如何动态设置HTML lang属性?

    如何在Web应用程序中动态设置HTML'lang'属性? 我尝试使用jQuery如下插入'lang'属性: $(document).ready(function() { $("html&qu ...

  2. JavaScript函数的各种调用模式

    函数是JavaScript世界里的第一公民,换句话来说,就是我们如果可以精通JavaScript函数的使用,那么对JavaScript的运用可以更游刃有余了.熟悉JavaScript的人应该都知道,同 ...

  3. JavaScript 函数参数

    JavaScript 函数参数 JavaScript 函数对参数的值没有进行任何的检查. 函数显式参数(Parameters)与隐式参数(Arguments) functionName(paramet ...

  4. JavaScript 函数定义

    JavaScript 使用关键字 function 定义函数. 函数可以通过声明定义,也可以是一个表达式. 函数声明 在之前的教程中,你已经了解了函数声明的语法 : function function ...

  5. 菜鸟教程 之 JavaScript 函数(function)

    From:https://www.runoob.com/js/js-function-definition.html JavaScript 函数定义 JavaScript 使用关键字 function ...

  6. JavaScript函数补完:sort()排序

    JavaScript实现多维数组.对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序. sort() 方法用于对数组的元素进行排序.语法如下: 1 arrayObject.so ...

  7. JavaScript函数定义的几种方式

    什么是函数呢? 对于JS来说,我们可以把函数理解为任意一段代码放在一个盒子里,在我们想要让这段代码执行的时候,直接执行这个盒子里的代码就行.专业一点来讲:JavaScript 函数是被设计为执行特定任 ...

  8. JavaScript函数补完:toString()

    javascript中的toString()方法,主要用于Array.Boolean.Date.Error.Function.Number等对象.下面是这些方法的一些解析和简单应用,做个纪律,以作备忘 ...

  9. EOS project 中 的一个 jsp 文件中 调用 javascript函数的问题

    大家好! 在我的 EOS 项目中,有一个页面流,共三个元素:"开始"---"视图"----"结束".其中视图与一个jsp文件(A.jsp)关 ...

最新文章

  1. 2021-2027年中国室内游艺设备行业研究及前瞻分析报告
  2. Python:模拟登录、点击和执行 JavaScript 语句案例
  3. oracle创建用户、表空间、临时表空间、分配权限步骤详解
  4. Windows10下jupyter notebook无法打开,如何解决?
  5. 【转】Ubuntu 安装截图工具Shutter,并设置快捷键 Ctrl+Alt+A
  6. 关于 TypeScript 联合类型 union type 赋值的一个错误消息
  7. wgs utm java,Java,将经纬度转换为UTM
  8. 练习-自定义分页功能的实现
  9. [zz]linux修改密码出现Authentication token manipulation error的解决办法
  10. c语言case语句块,JavaScript使用Switch语句来选择将要执行的代码块
  11. mysql表 spid program_SQL Server 表,记录 死锁解决办法
  12. Hadoop下虚拟机的创建与克隆
  13. 数据包接收系列 — IP协议处理流程(二)
  14. RabbitMQ03高级篇(消息可靠性投递,Consumer ACK,消费端限流,TTL, 通过代码创建队列和交换机以及绑定)
  15. vid在c语言中的作用,——PVID的作用及和VID的区别
  16. 问题 F: 求一个3*3矩阵对角线元素之和
  17. Node.js检查路径是文件还是目录
  18. 【T+】去掉畅捷通T+左边那些不用的云应用
  19. 【模型压缩】深度卷积网络的剪枝和加速(含完整代码)
  20. 认证资料大全(八)------ SUN认证列表

热门文章

  1. 常州大学阿里云大数据学院举行“创新思维”课程答辩
  2. 牛逼啊!一个可以随时随地写Python代码的神器
  3. GSM Hacking Part① :使用SDR扫描嗅探GSM网络
  4. 通过Web.config实现301重定向
  5. PHP 实现代码复用的一个方法 traits新特性
  6. C语言复习之关键字static的作用
  7. Java中List高效去重
  8. 选择主键:自然键还是代理键?
  9. Elasticsearch-6.7.0系列(六)ES设置集群密码
  10. java线程学习之notify方法和notifyAll方法