我正在構建一個web界面來編輯大表中的值(2600 x 2600)。由於表格非常大,我只將表格的一部分加載到瀏覽器中,用戶可以通過指定xmin,xmax,ymin和ymax值來查看錶格的小窗口。將x,y座標附加到我顯示的每個標記以反映單元格在大表格中的實際座標的最佳方法是什麼?我已經研究過jQuery.data()函數,但不清楚如何將其用於此目的。附加數據到元素
0
A
回答
1
如果你想使用jQuery.data()
只是屬性添加到您的HTML標記,像這樣:
<td data-x="..." data-y="...">
然後,您可以訪問這些值,具有:
$(element).data('x'); // where element is an td element, you somehow selected
0
$.data
是最好的方法,它是比$().data()
快得多:
$.data(DOMelement, data-title, data-value);
因此,例如,你可以使用this
在事件處理中:
$.data(this, 'some-key', 'some-value');
的$.data
棘手的部分是,你必須使用一個DOM元素作爲第一個參數。這意味着如果你有一個jQuery對象,你必須這樣做:
$.data($jQueryObject[0], 'some-key', 'some-value');
0
答案很大程度上取決於你將如何處理這些數據。你是否經常從元素中尋找數據?你經常在尋找一個基於座標的元素嗎?
對於在大型數據集中的性能,我通常會使用JavaScript - 而不是jQuery。僅適用於(x,y)數據的理想可能是使用數組,每個元素包含索引數據。像這樣:
// Each element in array y contains the x index's data object
var y = [ [{}, {}, {}, {}, {}], [{}, {}, {}, { key: 'value' }, {}] ];
// To get the element at (4, 2) (this will be not-so-fast)
// NOTE: There are faster ways to get this element
var xy = $('table tr:eq(1) td:eq(3)');
// To get the data of (4, 2) (this will be super fast)
var dataOfFourThree = y[1][3]; // { key: 'value' }
如果您有可能在純JS中反映DOM數據,那麼總會有性能提升。
相關問題
- 1. 附加到附加元素
- 2. 數據不附加到元素在Handlebars.js
- 3. PHP echo數據 - 附加到html元素
- 4. 將數據附加到DOM元素
- 5. JQuery AJAX附加到附加元素
- 6. 將元素附加到元素
- 7. 將元素附加到克隆元素
- 8. 保存附加元素數據庫
- 9. jQuery附加到元素
- 10. 將元素附加到數組
- 11. 附加到倒數第二個元素
- 12. 附加到數組的單個元素
- 13. 附加元素
- 14. 添加數據元素到元素
- 15. 將角度數組數據推送/附加到HTML元素中?
- 16. 將元數據附加到數組
- 17. 將元素附加到數組元素中
- 18. 將圖像加載到附加元素
- 19. getelementbyid附加元素
- 20. CKEDITOR元素附加
- 21. 如何將自定義數據附加到元素?
- 22. 將新數據附加到列表中的特定元素
- 23. Angular2將呈現的HTML元素附加到數據中
- 24. .data()如何將數據附加到元素?
- 25. 將大型元素/數據集附加到dom的性能
- 26. 如何將數據附加到DOM元素用於jQuery消費
- 27. 將數據屬性的值附加到元素
- 28. jQuery ajax後使用FormData()追加數據元素後無法找到附加的數據元素
- 29. 將元數據附加到Bugsnag與Laravel
- 30. 將元數據附加到Clojure gen-class
沒有意識到你可以做到這一點的標記。很高興知道。它是否有效XHTML? –
這些是有效的HTML5數據屬性:https://developer.mozilla.org/en/HTML/Global_attributes。他們很好用,很容易。他們創造了更多的開銷,所以如果你有很多很多的元素,你可能會想要使用'$ .data()'。 – Jasper
@Grim不幸的是它只在html5中有效。但至少它是格式良好的。 ;) – Yoshi