让jQuery忽略属性/数据名称中的大小写?

DA.*_*DA. 13 jquery camelcasing case-sensitive

我们在data-*一些客户端交互设置中使用HTML5的属性.jQuery使用它们来做它的事情.

问题是进入的HTML可能会有所不同.显然,这是应该修复的问题,但不幸的是,我并不总是控制正在生成的HTML.

问题:

鉴于这两个标签:

<a data-sampleAttributeName="example">

<a data-sampleattributename="example">
Run Code Online (Sandbox Code Playgroud)

是否有一种聪明的方式将它们视为同一个?

我提出的最好的是这样的:

var theAttribute = ($myobject).data('sampleAttributeName');

if (($myobject).data('sampleAttributeName')){
    theAttribute = ($myobject).data('sampleAttributeName')
} else {
    theAttribute = ($myobject).data('sampleattributename')
}
Run Code Online (Sandbox Code Playgroud)

我可以把它变成一个函数,我可以将camelCase版本传递给并检查两者.我只是想知道jQuery中是否有一个更清晰的内置功能来忽略data(或attr)值的情况.

Har*_*til 28

对于这里给出的两种变体,您应该使用值

.data('sampleattributename')
Run Code Online (Sandbox Code Playgroud)

驼峰套管(.data('sampleAttributeName'))适用于属性如下:

<a  data-sample-attribute-name="something">Anchor</a>
Run Code Online (Sandbox Code Playgroud)

检查这个jsfiddle