// my object
function myObject(id) {
this.id = id;
}
var parent = document.getElementById('parent');
var myObjects = [];
for(i = 0; i < someCount; i++) {
var id = someData[i].id; // unique value
var oobject = new myObject(id);
myObjects.push(oobject);
// div element
var div = document.createElement('div');
div.id = id; // note how div id is same as id property - these two are in "pairs" a.k.a the data from that object is meant for that div
div.className = 'my-div';
parent.appendChild(div);
}
我有哪些選擇?如何從DOM對象直接引用我的對象?從DOM對象到我的對象/數據的直接引用?
這甚至不必是單獨的對象,我只需要存儲一些數據,我可以通過DOM元素直接訪問/ O(1)。
- 數據動態,經常在我看來
- 有太多的數據爲
data-
屬性和Im擔心它會導致一些問題 - 適用於所有現代瀏覽器(也隱形模式排除了
localStorage
改變)和手機 - 不是大加localStorage
我需要能夠獲取/設置我的數據時,DOM元素被點擊沒有任何討厭的數組迭代或只使用一些屬性的值(如ID例如上文)尋找正確的對象。
- 我看着我加入自己的屬性/數據,以DOM對象本身 但所有我能找到的,這是非常糟糕的主意。這些帖子 年齡較大(2008年至2011年),2016年情況如何?關於這一點的信息極少。這將是最簡單的,我只需要1行:
myDiv.addEventListener('click', function(e){ var id = e.currentTarget.myObject.id; }
- 我還可以指定DOM對象我自己的目標,但據我所知,我找不到任何信息,否則,指出:有沒有辦法直接獲取對象由它的屬性又名在對象的層次結構中向上移動。
爲什麼不參考存儲的DOM元素,因爲它是'oobject.element = DIV;'? –
@ c-smile這就是我原來的。但是,我怎麼從** DOM元素_(而不是其他方式)直接訪問我的對象**而沒有任何迭代或其他O(n)操作? – Solo
也放回參考:'oobject.element = div; div.data = oobject; DOM元素是一個JS對象,因此您可以爲其分配屬性。請參閱:http://javascript.info/tutorial/attributes-and-custom-properties#properties –