我想知道浏览器是否存在哪些元素存储在属性数组中。
是否所有“data-xxx”属性都是通过“$('#elm')[0] .attributes”找到的?
例如,attributes-collection包含以下所有数据属性:
<input type="submit" value="Go" data-validation="foo" data-widgetId="bar">
我需要的是一种将所有相关属性从输入[type = submit]移动到带有jQuery的按钮元素的方法。
答案 0 :(得分:1)
我认为数据属性存在于所有浏览器中,即使在非HTML 5浏览器中它们被忽略
此处有人设法从IE6 Do HTML5 custom data attributes “work” in IE 6?
中的元素中读取它们@edited answer
刚发现jquery data()适用于html5和非html5浏览器;
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
答案 1 :(得分:0)
有关.attributes HERE
的浏览器支持信息 var attrs = $("input[type=submit]")[0].attributes;
for(var i=0;i<attrs.length;i++) {
alert(attrs[i].nodeName + " = " + attrs[i].nodeValue);
}
答案 2 :(得分:0)
目前没有多少浏览器对dataset
属性有本机支持,这是访问data-*
属性的官方标准方式。这将随着时间的推移而改善,但目前支持使用不够好(请参阅http://caniuse.com/#search=dataset了解更多信息)。
但是,众所周知,所有浏览器都支持data-*
作为常规属性。但是在没有dataset
属性的情况下,抓住所有data-*
属性并不容易。
幸运的是,有一个提供此功能的JQuery插件。有关详细信息,请参阅此处:http://www.orangesoda.net/jquery.dataset.html