2011-03-13 66 views
2

我有一個div或任何其他元素。我需要像數字(記錄的ID)或其他東西一樣保留一些參數,我需要使用jQuery來使用ajax來操作(更改它)。DIV或其他元素的最佳標識是什麼?

我可以使用div ID或類,但我不認爲這是一個好主意,以保持它的變量。有沒有其他的HTML屬性沒有被使用,並且在語義上是正確的用於這個目的。我正在考慮使用NAME屬性,這將是很好的操縱它使用jQuery?

我可以有一些空的12是hiiden,但我不認爲這個div的價值被用作一個好主意的變量。

在HTML元素中用作變量的一個好主意是什麼?

+0

根據記錄,'name'屬性只適用於表單元素。 – 2011-03-13 15:59:07

+0

是的,thanx。我只是看了看,情況是這樣。 – Jerry2 2011-03-13 16:02:26

+0

沒問題..如果你想堅持直接與元素相關的數據,使用fudgey答案,如果你喜歡從元素中分離數據,可以自由地實現我的建議。 :) – 2011-03-13 16:04:07

回答

5

使用對象的data


jQuery自動從HTML5 data-*屬性中填充元素的數據。因此,添加您的數據是這樣的:

<div id="someID" data-option1="selection1"></div> 

你可以從這樣的對象獲取的數據:

var opt = $('#someID').data().option1; // opt = "selection1" 

var opt = $('#someID').data('option1'); // opt = "selection1" 
+0

數據()似乎我在找,thanx。但它有一個缺失的功能。首次生成頁面時,我無法使用服務器端進行設置,因爲它只是jQuery,而不是HTML。 – Jerry2 2011-03-13 15:49:42

+0

我更新了我的答案:) – Mottie 2011-03-13 16:22:58

+0

Thanx,這將解決我的問題,是的。 data-option1如何通過驗證? – Jerry2 2011-03-14 06:40:31

1

您也可以在服務器端代碼關聯生成JS陣列將使用其現有的id將每個div「映射」到數據,然後使用該數組而不是該元素本身的屬性。

最終的陣列可以是這樣的:

var _data = { "div1": "first data", "div2": "second data", "div3": "third data" } 

,並使用它,像:

var id = element.id; //or element.attr("id") if jQuery object 
var data = _data[id]; 
... 
相關問題