2012-03-17 52 views
4

我是网络舞台上的总noob,我最近一直在学习jQuery。我的问题是,如果我的浏览器不支持HTML5,我是否可以使用jQuery从我的HTML访问'数据'属性''?从非HTML5浏览器访问数据标签

+1

就我而言,您可以在任何浏览器中使用html 5的数据属性,我知道即使Internet Explorer现在也应该有问题,因为IE忽略了所有不知道如何呈现或使用的属性。看到这篇文章http://stackoverflow.com/questions/2412947/do-html5-custom-data-attributes-work-in-ie-6 – jacqijvv 2012-03-17 10:38:50

回答

8

是的,你可以使用数据属性,你就可以用jQuery来访问它,即使该浏览器不支持HTML5:

var value = $('#foo').data('value'); 

,你必须:

<div id="foo" data-value="bar">Baz</div> 

的唯一的事情就是data属性无效,如果您的DOCTYPE不是HTML5 =>如果您尝试在HTML 4.01 Transitional中使用它,例如验证器会哭,但您的网站将无问题地工作。

+0

谢谢@达林,很好的解释。 – 2012-03-17 10:41:55

1

你可以使用.attr访问它想:

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

感谢您的回应@xdazz – 2012-03-17 10:41:36

+1

可以,但不应该,尤其是当操纵数据而不是阅读它们。用'attr()',数据返回到DOM。使用'data()',它是分开保存的。如果你用'attr()'改变一个值,然后用'data()'读取它,你会得到不同的值。 'attr()'仅处理字符串,'data()'将转换为本地类型,如整数。不管你做什么,除非你真的知道你在做什么,不要混合使用'attr()'和'data()'。我的经验法则是使用'attr()'读取原始DOM元数据或更改DOM属性,并使用'data()'作为应用程序状态。 – 2012-03-17 10:44:20

1

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

+0

谢谢你的答案@Alex – 2012-03-17 10:41:22