我想要一些關於dom操作的回報。我認爲我們可以通過幾種方式來保存元素的狀態。例如,你想讓一個元素「插入」,我必須使用什麼? :用javascript/jQuery操作dom元素屬性的最佳方法
- 添加CSS類爲「插入」
- 保存用。數據的屬性(「插入」,真)
- 推我的元素在含有所有全局數組「插入」元件
- 。 ..
但是最好的方法是什麼?也許解決方案是使用所有可能性。我不知道。
這是一個普遍的問題。我沒有特定的問題,但我正在開發一個巨大的JavaScript應用程序,我想選擇我的規則:)
我想要一些關於dom操作的回報。我認爲我們可以通過幾種方式來保存元素的狀態。例如,你想讓一個元素「插入」,我必須使用什麼? :用javascript/jQuery操作dom元素屬性的最佳方法
但是最好的方法是什麼?也許解決方案是使用所有可能性。我不知道。
這是一個普遍的問題。我沒有特定的問題,但我正在開發一個巨大的JavaScript應用程序,我想選擇我的規則:)
你想要選定的元素以特定的方式?
- >使用css-class
你想檢查是否在代碼的不同位置選擇了特定的元素嗎?
- >使用.data
你想對所有選定的元素做些什麼嗎?
- >使用數組。
如果您打算做以上幾件事情,您也可以結合使用這些方法。
如果你想要一個視覺元素來陪伴狀態,那麼CSS類是最明顯的選擇。數據元素也是標記某些東西的完美有效方式。
如果你想保持狀態,那麼在JSON結構中保存元素狀態可能是一個不錯的選擇。 JSON數據是「主模型」,並且基於其模型呈現元素。 JSON數據可以輕鬆傳遞到服務器或下一頁。
是的,很好的解決方案,我忘了JSON在JavaScript :) – Sebastien 2012-02-22 14:36:33
這是一個很難回答的問題,因爲它確實取決於您的應用程序的需求。您在任何特定時間需要評估多少個元素?一打?幾千?當你選擇這些元素時,你還需要做些什麼?基本準則是:
不要添加selected
類,除非你真的需要改變元素的樣式。
如果您需要根據是否已選擇元素來遍歷元素,請不要使用data()
選項。
如果您不需要它們來保存多個簡單的調用,請不要將選定的元素緩存在內存中(變量或localStorage或其他)。如果您有明顯的性能增益或需要保留數據,管理選定元素數組的開銷只是值得的。
那麼,你真的需要對這些元素做什麼?隨着有關您的情況的更多信息,我們可以提出更好的建議。
我沒有一個具體的情況下,我只是嘗試找到一個良好的JavaScript代碼的最佳途徑。我正在開發瀏覽器視頻遊戲,我將需要很多js :) – Sebastien 2012-02-22 14:40:15
對我來說,這取決於使用的狀態會是怎樣......
我幾乎不用類就可以將js邏輯添加到元素...... css往往比底層的javascript文件更經常變化。如果我在JS使用類,我強迫自己保持的類名,並選擇在CSS或者只是重做兩個js和css的所有元素選擇當需要更改(例如,因爲使用另一個庫或CSS模板)
至於你的第三個選擇,屬性可以給你的所有選擇alemens期運用jQuery選擇$陣列(「* [選擇]」)
如果事情變得複雜,我把增強DOM元素融入到「類」
var InserttMe = function(element){
this.element = element;
this.inserted= false;
};
selectMe.prototype = {
insert: function(){
this.inserted= true;
//do whatever you do with your element
}
}
我很好奇,看看有經驗的人在這些技術的話。好問題! – 2012-02-22 14:28:53
這真的取決於「選擇」的含義。如果僅僅是爲了程序上的目的,因爲Javascript對象只是關聯數組,所以可以將「selected」添加爲DOMElement的新成員:'someDOMElement.selected = true;' – crush 2012-02-22 14:29:54
我認爲這取決於您打算如何處理知識 - 但我很好奇,更有經驗的人不得不說。 – 2012-02-22 14:31:02