el2.dataset.stuff = document.getElementById('el1');
似乎不起作用。
我需要能够稍后访问el1的innerHTML属性。
el2.dataset.stuff = document.getElementById('el1').innerHTML;
有效,但我不喜欢将重复内容存储在变量中。如果我有很多元素,就会占用大量内存。
我猜因为数据集需要字符串?如果这是真的,我如何设置对el2内另一个elmement的引用?
答案 0 :(得分:3)
实际上,您只需按照定义将字符串存储在dataset
属性中。
因此,在您的情况下,您应该有一个单独的数据结构(应该可以在两个需要的范围内访问)来存储您的引用,如下所示:
var myPointers = {
'el2': {
'stuff': document.getElementById('el1')
}
};
// later
var el1 = myPointers.el2.stuff;
或者您只需存储el1
的ID并在需要时检索实际元素:
el2.dataset.stuff = 'el1';
// later
var el1 = document.getElementById( el2.dataset.stuff );