Javascript 有没有简单/快速的地图绘制方法;数据-“;混合大小写属性名的属性?
我有一个基本插件类,用作所有jQuery插件的基础。它类似于jQueryUI小部件,但对我来说有很多繁重的工作 现在,我希望将附加元素中的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">
数据-
属性值映射到传递给插件的任何选项中。这将允许插件不仅接受典型的选项
对象,还允许数据驱动的覆盖单个元素上的值(一个常见要求)
我的问题是,我的选项属性通常大小写混合,例如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>