2011-09-14 71 views
2

我想知道爲元素使用data-varname屬性的瀏覽器兼容性是什麼樣子?DOM數據-x屬性兼容性 - 這是否安全?

在我的網站中,我使用數據屬性來指示行號,參考ID等,以便插入ajax刪除&。

例如:

<ul> 
    <li data-row="1">First Row <a href="#" data-row="1" data-id="123">remove</a></li> 
    <li data-row="2">Second Row <a href="#" data-row="1" data-id="111">remove</a></li> 
</ul> 

$(document).ready(function(){ 
    $("li a").click(function(){ 
     var index = $(this).attr("data-row"); 
     $("li [data-row='" + index + "']").remove(); 
      // ajax deletion in database referencing data-id attribute 
    }); 
}); 

我知道我可以只是參考錨的母公司將其刪除,而不是着眼於元素的數據行的屬性,但是這只是爲了顯示它的基本用法的例子。這實際上並不是我所做的。

我想知道如何使用這個數據屬性是「安全」的。它是否非常兼容,或者是否仍有大量瀏覽器無法正常運行?

回答

2

這是完全安全的。瀏覽器一直接受無法識別的屬性。 data-*屬性發生的一切就是HTML5定義了(a)這些名稱將永遠不會用於任何其他官方目的,並且(b)API可以更方便地訪問JavaScript中的這些值。

如果您使用新的API,那麼對於舊版本的瀏覽器以及那些尚未對API提供本機支持的應用,您將需要使用polyfill,但是您所做的不使用該API。

+1

感謝您的回覆!所以唯一的危險是如果你用javascript:element.dataset.dataname中的native-HTML5方法引用它?使用$(this).attr('data-name')會保持安全的思想,對吧?謝謝 :) – Atticus