html函数属性的赋予,你可以将javascript函数名称设置为html属性吗?
你可以,是的.你是否应该完全是另一个问题,答案几乎肯定是“不”(就执行字符串而言;就下面所示的替代方案而言,有时它是有用的).
你评估代码片段的方式(你所拥有的不只是一个函数名,因为())将使用可怕的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属性吗?相关推荐
- js如何改变HTML属性,javascript – 如何动态设置HTML lang属性?
如何在Web应用程序中动态设置HTML'lang'属性? 我尝试使用jQuery如下插入'lang'属性: $(document).ready(function() { $("html&qu ...
- JavaScript函数的各种调用模式
函数是JavaScript世界里的第一公民,换句话来说,就是我们如果可以精通JavaScript函数的使用,那么对JavaScript的运用可以更游刃有余了.熟悉JavaScript的人应该都知道,同 ...
- JavaScript 函数参数
JavaScript 函数参数 JavaScript 函数对参数的值没有进行任何的检查. 函数显式参数(Parameters)与隐式参数(Arguments) functionName(paramet ...
- JavaScript 函数定义
JavaScript 使用关键字 function 定义函数. 函数可以通过声明定义,也可以是一个表达式. 函数声明 在之前的教程中,你已经了解了函数声明的语法 : function function ...
- 菜鸟教程 之 JavaScript 函数(function)
From:https://www.runoob.com/js/js-function-definition.html JavaScript 函数定义 JavaScript 使用关键字 function ...
- JavaScript函数补完:sort()排序
JavaScript实现多维数组.对象数组排序,其实用的就是原生的sort()方法,用于对数组的元素进行排序. sort() 方法用于对数组的元素进行排序.语法如下: 1 arrayObject.so ...
- JavaScript函数定义的几种方式
什么是函数呢? 对于JS来说,我们可以把函数理解为任意一段代码放在一个盒子里,在我们想要让这段代码执行的时候,直接执行这个盒子里的代码就行.专业一点来讲:JavaScript 函数是被设计为执行特定任 ...
- JavaScript函数补完:toString()
javascript中的toString()方法,主要用于Array.Boolean.Date.Error.Function.Number等对象.下面是这些方法的一些解析和简单应用,做个纪律,以作备忘 ...
- EOS project 中 的一个 jsp 文件中 调用 javascript函数的问题
大家好! 在我的 EOS 项目中,有一个页面流,共三个元素:"开始"---"视图"----"结束".其中视图与一个jsp文件(A.jsp)关 ...
最新文章
- 2021-2027年中国室内游艺设备行业研究及前瞻分析报告
- Python:模拟登录、点击和执行 JavaScript 语句案例
- oracle创建用户、表空间、临时表空间、分配权限步骤详解
- Windows10下jupyter notebook无法打开,如何解决?
- 【转】Ubuntu 安装截图工具Shutter,并设置快捷键 Ctrl+Alt+A
- 关于 TypeScript 联合类型 union type 赋值的一个错误消息
- wgs utm java,Java,将经纬度转换为UTM
- 练习-自定义分页功能的实现
- [zz]linux修改密码出现Authentication token manipulation error的解决办法
- c语言case语句块,JavaScript使用Switch语句来选择将要执行的代码块
- mysql表 spid program_SQL Server 表,记录 死锁解决办法
- Hadoop下虚拟机的创建与克隆
- 数据包接收系列 — IP协议处理流程(二)
- RabbitMQ03高级篇(消息可靠性投递,Consumer ACK,消费端限流,TTL, 通过代码创建队列和交换机以及绑定)
- vid在c语言中的作用,——PVID的作用及和VID的区别
- 问题 F: 求一个3*3矩阵对角线元素之和
- Node.js检查路径是文件还是目录
- 【T+】去掉畅捷通T+左边那些不用的云应用
- 【模型压缩】深度卷积网络的剪枝和加速(含完整代码)
- 认证资料大全(八)------ SUN认证列表