2010-11-22 87 views
5

我一直在使用rel存放一些非HTML信息,還有什麼其他的屬性是不常用的,我可以利用存儲信息?其它信息HTML元素屬性

+1

這是危險的東西。 Rel屬性其實很漂亮,也就是說Google bot在其他方面使用它。 建議您爲自己的目的使用定義的HTML屬性。 – 2010-11-22 03:49:35

+0

@Chris:所有這些東西都是由一段JavaScript生成的,沒有任何人應該閱讀。 – 2010-11-22 03:51:31

+0

正是這一點! – 2010-11-22 04:09:31

回答

5

你可能想切換到HTML5和使用custom data attributes

+0

在HTML5推出之前,我一直使用_something作爲自定義數據的屬性名稱,假設真正的屬性不太可能以下劃線開頭。這是一個「可以接受」的假設,還是我會更好地把所有東西都轉換成數據 - 是什麼? – 2010-11-22 03:53:27

+0

我建議使用'data- *',因爲它是有效的HTML討價還價。 – 2010-11-22 03:54:30

+0

我會用這個,謝謝。我使用jQuery的'attr'函數,因此不需要原生的JS實現。 – 2010-11-22 04:04:10

3

在HTML5中,你可以定義自己的屬性data-存儲任何你想要的。

3

如果您願意,您可以自己設定屬性。將數據放入屬性中可能不是一個好主意,如果通過規範它應該有一些有意義的內容。

2

HTML 5 spec,您可以使用data-*屬性;他們保證不對瀏覽器做任何事情,他們也可以在舊版瀏覽器中工作。

在JavaScript中,你可以用通常屬性特性訪問:

var value = elem.getAttribute("data-foo") 
elem.setAttribute("data-foo", "value") 
elem.removeAttribute("data-foo") 

有了新的瀏覽器可以使用elem.dataset,但你可能不希望這樣做,因爲舊的瀏覽器不支持它。

var value = elem.dataset.foo; 
elem.dataset.foo = "value"; 
elem.dataset.foo = null; 
1

HTML5現在supports存儲數據 - *屬性的信息,但多數民衆贊成HTML5,大家都還沒有。因此,一個真實的場景......

如果您不擔心跨後背上堅持,你可以簡單的數據對象作爲一個JSON集合VAR地圖和拉基於特定鍵的對象出來。但這是一個廣泛的方法 - 關於總體目標的更多信息會改善反饋。

1

取決於您希望存儲什麼樣的信息以及您計劃如何訪問它。我成功使用了idclass屬性來存儲和訪問數據庫ID(例如,甚至是某些數據庫表的引用),然後使用jQuery檢索它們以執行一些AJAX請求。

如果你不使用HTML5,我建議不要使用自己的自定義屬性。否則,就像在我之前建議的人一樣,查看data-前綴的屬性。

0

data- *是要走的路,如果你可以使用HTML5。您可以輕鬆地訪問他們的JavaScript也與elem.data。*

否則,自定義屬性可能比搞砸了的頁面的語義更好。