今天在研究一個ssh項目時發現一個問題,就是html里面自定義屬性問題:
我在js中獲取自定義屬性是這樣 $(obj).myid 來獲取內容另一個id值的,然后發現在谷歌下怎么運行都是報 undefined 。拿ie試了一試,居然沒有錯,上網搜了一下,發現這篇文
章,共享一下。改成$(obj).getAttribute("myid")解決兼容性問題。
原文如下:
HTML標簽可以自定義屬性,但是我們要考慮其在IE、Firefox以及chrome下的兼容性問題。
例如:
- <div id="newTest" myAttr="getAttr"></div>
這里的“myAttr”就是這個標簽的自定義屬性了。
如果定義了屬性卻使用不了,那么這個屬性就沒有任何意義了,接下來就是如何去調用我們的自定義屬性的值了。
在IE瀏覽器里,我們通過獲取對象后直接調用就可以了
- document.getElementById("newTest").myAttr;
在IE瀏覽器里,我們同樣可以對其直接賦值而動態產生一個自定義屬性:
- document.getElementById("newTest").newAttr = "new";
在火狐和谷歌瀏覽器里,我們可以通過getAttribute方法來實現調用:
- document.getElementById("newTest").getAttribute("myAttr");
在火狐和谷歌瀏覽器里,我們可以通過setAttribute方法在產生並設置一個自定義屬性:
- document.getElementById("newTest").setAttribute("newAttr","new");
自定義屬性一般是我們用來存儲數據或是相關依據的,根據實際情況,自定義屬性其實很有用的。
測試瀏覽器:IE8,firefox 8.01,chrome 17.0.963.46 m
測試結果:能夠獲取到自定義屬性
另外補充一點,如果不想做兼容判斷,其實我們可以使用Jquery的attr方法來獲取與設置自定義屬性的值,目前測試結果是全兼容。
- $("#newTest").attr("myAttr");
- $("#newTest").attr("newAttr","new");