2011-05-09 43 views
0

我有一個特殊的場景,我需要一個文件名,而不是一次,但兩次,因爲我將變量傳遞給ASP.NET MVC控制器。將文件名存儲在像span或div這樣的DOM元素中,並使用jQuery的.text()函數獲取值是個好主意嗎?或者更好的方法是使用類似JSON的對象進行初始化並不斷操縱?在html中存儲變量和使用文本()

但問題仍然存在。將變量存儲在HTML DOM元素中是好的還是壞主意?

回答

1

任何一個都可以工作,並且可以將數據存儲在DOM中。它更多取決於您嘗試完成的操作的複雜性,這聽起來很簡單 - 存儲文件名。我認爲你應該好好這樣做。存儲在JSON對象中也是可行的,我會盡可能選擇最適合您的結構,並且您的客戶端/服務器握手更容易。

2

正如@Atticus所說,無論如何這樣做都可以,我會根據我所需要的數據做兩件事情:如果它特別綁定到元素,我會將它存儲在元素上;如果它更通用於頁面,我將使用JSON表示法傳遞一個對象。

當在DOM元素上存儲數據時,不需要將它們作爲文本存儲在元素中。您可以改用data-* attributes。這些在HTML5中有效,現在可在所有瀏覽器中使用。唯一的缺點是,如果您將驗證作爲工作流程的一部分使用,並且您還沒有使用HTML5進行驗證(並且這並不令人驚訝,驗證程序還沒有完全準備好,規範仍然存在而不是流量!),它們不會在HTML 4.01或更低版本中驗證。但是瀏覽器對他們來說很好,這是HTML5正在編纂(並統治)當前實踐的一個領域,而不是創新。

+0

@TJ - 認真嗎?所以你可以把data- *當作一個自定義屬性來處理,比如說把一些相關的信息存儲到一個控件中吧?也許如果我們想知道一個字段的值是否與原始值不同,您可以使用 「/> 並基於一個控件進行比較?這很瞭解,我不知道這一點。 – Atticus 2011-05-09 09:49:44

+0

重新讀你的迴應..這正是你所說的。完美 – Atticus 2011-05-09 09:51:02

+1

@Atticus:你確實可以,雖然在你的例子中,你並不需要。 'input [type = text]'元素使用「value」屬性爲元素的'value' *屬性*初始值播種,但如果'value'屬性改變,那麼「value」屬性不會。 (按設計)。還有,元素的'defaultValue'屬性應該反映它們在第一次創建時的值。但這是一個離題。是的,您可以使用'data- *'屬性來存儲任何您想要的DOM元素。 – 2011-05-09 09:52:10