我想知道是否有浏览器一致性元素存储在属性数组中。element.attributes是否包含自定义数据属性?
是否通过“$('#elm')[0] .attributes”找到所有“data-xxx”属性?
例如确实属性收集包含所有以下数据属性:
<input type="submit" value="Go" data-validation="foo" data-widgetId="bar">
我需要的是从输入运动的所有相关的属性的方式[类型=提交]对按钮元件与jQuery。
我想知道是否有浏览器一致性元素存储在属性数组中。element.attributes是否包含自定义数据属性?
是否通过“$('#elm')[0] .attributes”找到所有“data-xxx”属性?
例如确实属性收集包含所有以下数据属性:
<input type="submit" value="Go" data-validation="foo" data-widgetId="bar">
我需要的是从输入运动的所有相关的属性的方式[类型=提交]对按钮元件与jQuery。
不是很多浏览器目前拥有的dataset
属性,这是访问data-*
属性的官方标准方法的原生支持。这会随着时间的推移而改善,但现在还没有得到足够的支持(详见http://caniuse.com/#search=dataset)。
但是,正如您所知,所有浏览器都可以支持data-*
作为常规属性。但是在没有dataset
属性的情况下,并不容易获取所有data-*
属性。
幸运的是,有一个提供此功能的JQuery插件。在这里看到更多的信息:http://www.orangesoda.net/jquery.dataset.html
我认为数据属性存在于所有的浏览器,即使它们在非HTML的情况下忽略5个浏览器
这里有人设法在IE6 Do HTML5 custom data attributes “work” in IE 6?从一个元素阅读
@edited回答
只是发现jquery的数据()与HTML5和非HTML5的browers工程;
http://www.sluniverse.com/ffn/index.php/2011/02/using-html5s-data-attributes-with-jquery/
example of looping through all data attributes;
<input type="text" id="x" data-a="valuea", data-b="valueb" />
$.each($('#x').data(), function(key, value) {
console.log('key is', key);
console.log('value is', value);
});
prints
key is a
value is valuea
key is b
value is valueb
必须阅读本:http://api.jquery.com/attr/ – diEcho 2011-04-13 10:59:31
呀.attr()的岩石,但它并没有给我带键/值对循环一个对象通过。 – Jens 2011-04-13 11:25:53
我更新你的问题。请参阅**编辑**部分..如果它不是你想要的然后删除。 – diEcho 2011-04-13 12:08:05