Javascript 有没有简单/快速的地图绘制方法;数据-“;混合大小写属性名的属性?

Javascript 有没有简单/快速的地图绘制方法;数据-“;混合大小写属性名的属性?,javascript,jquery,jquery-plugins,custom-data-attribute,Javascript,Jquery,Jquery Plugins,Custom Data Attribute,我有一个基本插件类,用作所有jQuery插件的基础。它类似于jQueryUI小部件,但对我来说有很多繁重的工作 现在,我希望将附加元素中的数据-属性值映射到传递给插件的任何选项中。这将允许插件不仅接受典型的选项对象,还允许数据驱动的覆盖单个元素上的值(一个常见要求) 我的问题是,我的选项属性通常大小写混合,例如MaxHeight,但显然HTML规范只允许在数据-属性名称中使用小写字符 例如,试验台: HTML: <div id="test" data-DataTest="test2">

我有一个基本插件类,用作所有jQuery插件的基础。它类似于jQueryUI小部件,但对我来说有很多繁重的工作

现在,我希望将附加元素中的
数据-
属性值映射到传递给插件的任何选项中。这将允许插件不仅接受典型的
选项
对象,还允许数据驱动的覆盖单个元素上的值(一个常见要求)

我的问题是,我的选项属性通常大小写混合,例如
MaxHeight
,但显然HTML规范只允许在
数据-
属性名称中使用小写字符

例如,试验台:

HTML:

<div id="test" data-DataTest="test2"></div>
预期结果:

console.log(object.datatest); // undefined
console.log(object.DataTest); // test

我正在寻找将
数据-
属性映射到混合大小写属性的方法,同时保持当前的速度和简单性(如果可能)。

有关camelCased规则,请参阅以下链接:

所以在你的情况下,我会使用:

<div id="test" data--data-test="test2"></div>

要获得:


object.DataTest//test2

我根据jQuery文档中的示例对
data()
进行了快速测试,如果您自己设置数据,jQuery将在编写时检索数据。示例:
$('#test')。数据({test:1})console.log(object.TEST)
将得到
1
。您必须使用连字符表示法:
data data test=“test2”
EDIT:事实上,不适用于
DataTest
,但这就是为什么属性名不应以大写字母开头的原因。这很有趣,我没有意识到它是这样工作的。不仅大写字母似乎是无效的,它们“都……自动将ASCII小写”,类似于这个问题:@A.Wolff:非常接近
这是一个很好的解决方案
。。。刚刚尝试了
数据--data test
,还得到了一个前导大写字符。。。请作为答案发布:)
数据——数据测试将提供我所需的领先资金(我猜它可能会允许这样做,并且成功了)。你可能需要修改。我倾向于使用
ProperCased
属性名。不确定JS代码的最宽标准是什么:)我看到C语言最常见的标准是
属性
=ProperCased,
字段
=lowerFirst@TrueBlueAussie你确实是对的:…我可能需要调整我的编码以适应最常见的JS命名标准(来回切换是一件痛苦的事情,因此非常喜欢TypeScript):)
<div id="test" data--data-test="test2"></div>