Jquery 从非HTML5浏览器访问数据标记

Jquery 从非HTML5浏览器访问数据标记,jquery,html,Jquery,Html,我在网络领域是个十足的noob,最近我一直在学习jQuery。我关心的是,如果我的浏览器不支持HTML5,我是否能够从HTML中使用jQuery访问“数据””属性?您可以使用.attr访问它,如下所示: $(your_selector).attr('data-foo'); 是的,您可以使用data属性,即使浏览器不支持HTML5,您也可以使用jQuery访问该属性: var value = $('#foo').data('value'); 如果您有: <div id="foo" dat

我在网络领域是个十足的noob,最近我一直在学习jQuery。我关心的是,如果我的浏览器不支持HTML5,我是否能够从HTML中使用jQuery访问“数据””属性?

您可以使用
.attr
访问它,如下所示:

$(your_selector).attr('data-foo');

是的,您可以使用data属性,即使浏览器不支持HTML5,您也可以使用jQuery访问该属性:

var value = $('#foo').data('value');
如果您有:

<div id="foo" data-value="bar">Baz</div>
Baz
唯一的问题是,如果您的DOCTYPE不是HTML5=>如果您尝试在HTML4.01中使用它,
data
属性是无效的,例如,验证程序会哭,但您的站点将正常工作。

是。
但是如果您的浏览器不支持HTML5,则
数据
-属性是无效的(X)HTML。但是,使用jQuery访问数据时,这应该不是一个问题。

据我所知,您可以在任何浏览器中使用html 5的数据属性,我知道即使是Internet Explorer现在也应该有问题,因为IE忽略了它不知道如何呈现或使用的所有属性。请看这篇文章谢谢你的回答@Alex谢谢responze@xdazzCould,但不应该,特别是在处理数据而不是读取数据时。使用
attr()
,数据返回DOM。使用
data()
,它是单独保存的。如果您使用
attr()
更改一个值,然后使用
data()
读取该值,您将得到不同的值。另外,
attr()
只处理字符串,
data()
将转换为本机类型,如整数。无论你做什么,不要混合使用
attr()
data()
,除非你真的知道自己在做什么。我的经验法则是使用
attr()
读取原始DOM元数据或更改DOM属性,使用
data()
查看应用程序状态。谢谢@Darin,解释得很好。