如何动态填充javascript函数的选项
How to Dynamically populate options for javascript function
我有一个javascript和html在很大程度上分离的应用程序。我正在尝试用javascript或jquery编写一些东西,它将从html元素中提取所有数据属性,并将这些属性放入javascript函数Dynamically的选项中。有很多选项,每次提到这个脚本时,都不会全部使用。
首先是一个例子,然后我会展示我是如何做到的(半成功)。
HTML:
<button data-behavior="sweetalert" data-title="Alert Title" data-text="Lorem ipsum dolar..." data-showCancelButton="true">Click Me</button>
Javascript:
sweetAlert({
title: "Alert Title",
text: "Lorem ipsum dolar...",
showCancelButton: true,
});
直接向前,对吗?好的,现在让我们想象一下并动态地填充它。因此,我想要的是能够在sweetAlert api中找到一个选项,然后能够简单地用data-attribute
将其附加到我的html元素。通过这种方式,前端用户可以添加快速html,而无需到处都是脚本标记。
到目前为止,这就是我所做的,它确实有效,并为我提供了适当的结果,除了需要非字符串的选项(如布尔值)。
$('[data-behavior="sweetalert"]').click(function() {
attributes = $(this).data();
delete attributes["behavior"];
sweetAlert($.each(attributes, function(key, value) {
key + ": " + value + ', '
}));
});
因此,这个函数起作用,并正确地插入标题和描述。但是,它不能正确地引入布尔选项。
有人知道我如何改进这一点吗?这样我就可以设置布尔选项(至少),其次是整数选项?
肯定有人以前做过这种事提前谢谢!
.data()
函数自动将"true"转换为true
。所以这应该有效:
$('[data-behavior="sweetalert"]').click(function() {
attributes = $(this).data();
delete attributes["behavior"];
sweetAlert(attributes);
});
data()
还自动转换整数,因此您也应该在这方面进行设置。
编辑以添加来自OP的注释:数据属性转换为驼色大小写。因此,为了使data()
生成一个名为showCancelButton
的属性,您应该将其写为元素上的data-show-cancel-button
。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在全局范围中查找JavaScript函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 如何调用这个匿名 JavaScript 函数
- 通过Ajax将JavaScript函数传递给PHP文件
- 在javascript函数中设置全局变量
- 如何在执行此特定onclick事件时执行JavaScript函数
- 使用javascript函数在页面初始化后加载jquery
- javascript函数同步
- 如何将一个JavaScript函数回调为多个函数
- 在javascript函数中使用php变量
- 代码背后调用一个JavaScript函数的按钮点击-C#
- 将JavaScript函数与HTML分离
- 组合两个javascript函数
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- javascript函数内部的代码用逗号而不是分号分隔
- href属性内的javascript函数
- 使用html表单中的参数调用JavaScript函数
- 分析Javascript函数中的多个对象
- javascript函数的:和=之间的区别