在HTML5的数据属性中存储一些自定义数据以进行Jquery处理。这些自定义数据属性在旧版浏览器中可用吗?
HTML5 datalist
属性在老的浏览器中不可用(尽管可以很容易地进行 polyfill)。当然,您始终可以使用标准的 getAttribute
方法,并且在 HTML 元素上使用 data-xxx
属性会被所有浏览器接受(只要您处于 HTML 模式而不是 xHTML 模式,在后者中它们无效)。
但是,您的问题似乎更具体地涉及 jQuery,对此的答案是是——jQuery .data()
方法在所有由 jQuery 支持的浏览器中都可用。
这个属性本身在所有浏览器中都有效,毕竟它只是一个属性。这样做“有效”的意思是该属性将存在于DOM中:
<div random-attribute="hello"></div> <!-- invalid, but "works" -->
<div data-random="hello"></div> <!-- valid (in browsers with HTML5 support) -->
元素的本地 dataset
属性在旧版浏览器中无法使用,但 getAttribute
可以:
var random = document.getElementById("x").dataset.random;
// or
var random = document.getElementById("x").getAttribute("data-random");
任何支持HTML的东西都可以访问HTML数据属性。因此,通过JQUERY在客户端处理它应该是完全没问题的。
事实上,最近我在工作中必须为一个项目做这个,一直到ie7都能很好地运行。
如果您想使用HTML数据属性通过CSS进行样式设置,则需要浏览器支持CSS3选择器。这包括IE9以下的所有浏览器和一些旧版本的Firefox。
这可能会对您有所帮助: