Pau*_*ite 173 javascript html5 internet-explorer internet-explorer-6 custom-data-attribute
自定义数据属性:http://dev.w3.org/html5/spec/Overview.html#embedding-custom-non-visible-data
当我说"工作"时,我的意思是,如果我有这样的HTML:
<div id="geoff" data-geoff="geoff de geoff">
Run Code Online (Sandbox Code Playgroud)
将以下JavaScript:
var geoff = document.getElementById('geoff');
alert(geoff.dataGeoff);
Run Code Online (Sandbox Code Playgroud)
在IE 6中产生一个带有"geoff de geoff"的警报?
Mar*_*pel 153
您可以使用检索自定义(或您自己的)属性的值getAttribute
.按照你的例子
<div id="geoff" data-geoff="geoff de geoff">
Run Code Online (Sandbox Code Playgroud)
我可以获得data-geoff
使用的价值
var geoff = document.getElementById("geoff");
alert(geoff.getAttribute("data-geoff"));
Run Code Online (Sandbox Code Playgroud)
请参阅MSDN.虽然在那里提到你需要IE7才能让它工作,我前一段时间用IE6测试了它并且它正常运行(即使在怪癖模式下).
但这当然与HTML5特定的属性无关.
Mar*_*rko 142
是的,他们工作.
IE已经getAttribute()
从IE4 支持这是jQuery内部使用的data()
.
data = elem.getAttribute( "data-" + key ); // Line 1606, jQuery.1.5.2.js
Run Code Online (Sandbox Code Playgroud)
所以你可以使用jQuery的.data()
方法或简单的vanilla JavaScript:
示例HTML
<div id="some-data" data-name="Tom"></div>
Run Code Online (Sandbox Code Playgroud)
使用Javascript
var el = document.getElementById("some-data");
var name = el.getAttribute("data-name");
alert(name);
Run Code Online (Sandbox Code Playgroud)
jQuery的
var name = $("#some-data").data("name");
Run Code Online (Sandbox Code Playgroud)
IE6不仅不支持HTML5数据属性功能,实际上几乎没有当前浏览器支持它们!目前唯一的例外是Chrome.
您完全可以自由地data-geoff="geoff de geoff"
用作属性,但只有当前浏览器版本的Chrome才会为您提供.dataGeoff
属性.
幸运的是,所有当前的浏览器 - 包括IE6 - 都可以使用标准DOM .getAttribute()
方法引用未知属性,因此.getAttribute("data-geoff")
可以在任何地方使用.
在不久的将来,新版本的Firefox和Safari将开始支持数据属性,但鉴于有一种非常好的方法可以在所有浏览器中访问它,那么实际上没有理由使用HTML5方法仅适用于部分访客.
您可以在CanIUse.com上查看有关此功能的当前支持状态的更多信息.
希望有所帮助.
归档时间: |
|
查看次数: |
69519 次 |
最近记录: |