HTML5 自定义数据属性在 IE 6 中是否“有效”?

自定义数据属性:http://dev.w3.org/html5/spec/Overview.html#embedding-custom-non-visible-data

当我说“工作”时,我的意思是,如果我有这样的HTML:

<div id="geoff" data-geoff="geoff de geoff">

将以下 JavaScript:

var geoff = document.getElementById('geoff');
alert(geoff.dataGeoff);

在IE 6中,生成带有“geoff de geoff”的警报?


答案 1

您可以使用 检索自定义(或您自己的)属性的值。按照您的示例getAttribute

<div id="geoff" data-geoff="geoff de geoff">

我能得到使用的价值data-geoff

var geoff = document.getElementById("geoff");
alert(geoff.getAttribute("data-geoff"));

请参阅 MSDN。尽管那里提到您需要IE7才能使其正常工作,但我不久前在IE6中对此进行了测试,并且它运行正常(即使在quirks模式下也是如此)。

当然,这与HTML5特定的属性无关。


答案 2

是的,它们有效。

IE从IE4开始支持,这是jQuery内部使用的。getAttribute()data()

data = elem.getAttribute( "data-" + key ); // Line 1606, jQuery.1.5.2.js

所以你可以使用jQuery的方法或普通的JavaScript:.data()

示例网页

<div id="some-data" data-name="Tom"></div>

Javascript

var el = document.getElementById("some-data");
var name = el.getAttribute("data-name");
alert(name);

jQuery

var name = $("#some-data").data("name");