Unk*_*own 35 html jquery html5 custom-data-attribute jquery-data
如何使用jquery获取数据属性.data()?在哪种情况下,html5 data-*属性转换为小写和camelcase?使用自定义属性存储数据时要遵循的主要规则是什么?
<input type="button" class="myButton" value="click me" data-productId="abc"/>
<input type="button" class="myButton" value="click me" data-product-id="abc"/>
<input type="button" class="myButton" value="click me" data-PRODUCT-ID="abc"/>
<input type="button" class="myButton" value="click me" data-ProDUctId="abc"/>
Run Code Online (Sandbox Code Playgroud)
Unk*_*own 92
HTML5允许我们创建自己的自定义属性来存储数据.自定义属性可以被称为任何我们喜欢的东西,比如变量名称,但是它们需要加上单词'data',单词用短划线分隔.您可以将"foo","bar"和"foo bar"数据属性添加到这样的输入:
<input type="button" class="myButton" value="click me" data-foo="bar"
data-bar="baz" data-foo-bar="true">
Run Code Online (Sandbox Code Playgroud)
jQuery的.data()方法将为您提供对data-*属性的访问.
使用jQuery直到1.4版本,数据属性不区分大小写,因此:
<input type="button" class="myButton" value="click me" data-productId="abc"/>
Run Code Online (Sandbox Code Playgroud)
可以访问
$('.myButton').data('productId');
Run Code Online (Sandbox Code Playgroud)
jQuery 1.5和1.6
但是,jQuery 1.5和1.6中的更改意味着数据属性现在被强制为小写,因此:
<input type="button" class="myButton" value="click me" data-productId="abc"/>
Run Code Online (Sandbox Code Playgroud)
只能访问
$('.myButton').data('productid');
Run Code Online (Sandbox Code Playgroud)
任何data-*属性都将成为元素数据集对象的属性.新属性名称派生如下:
data-前缀从属性名称剥离.请注意,原始属性名称data-product-id已转换为productId数据集对象.命名data-*属性时必须考虑名称转换过程.由于属性名称转换为小写,因此最好避免使用大写字母.以下示例显示了多个属性名称如何转换为数据集属性.
"data-productId" translates to "productid"
"data-product-id" translates to "productId"
"data-PRODUCT-ID" translates to "productId"
"data-ProDUctId" translates to "productid"
Run Code Online (Sandbox Code Playgroud)
注意:
alt属性是更好的选择.data-*第三方应用程序不应使用属性.这意味着搜索引擎等程序在准备搜索结果时不应依赖自定义数据属性.在HTML5中实现自定义属性本身并不复杂,但真正的困难在于选择是否适合在自己的项目中使用它们,如果是,那么如何有效地进行它.最后,请记住,对于您的页面所依赖的功能,开始使用数据集方法还为时尚早,因此请务必为不支持的浏览器提供替代方案.
| 归档时间: |
|
| 查看次数: |
19443 次 |
| 最近记录: |