3
el2.dataset.stuff = document.getElementById('el1');

似乎不起作用。

稍后我需要能够访问 el1 的 innerHTML 属性。

el2.dataset.stuff = document.getElementById('el1').innerHTML;

有效,但我不喜欢将重复内容存储在变量中的想法。如果我有很多元素,它会吃掉很多内存。

我猜是因为数据集需要字符串?如果这是真的,我如何在 el2 中设置对另一个 elmement 的引用?

4

1 回答 1

3

实际上,您可以dataset根据定义将字符串存储在属性中。

因此,在您的情况下,您应该有一个单独的数据结构(应该在两个需要的范围内都可以访问)来存储您的引用,如下所示:

var myPointers = {
  'el2': {
    'stuff': document.getElementById('el1')
  }
};

// later

var el1 = myPointers.el2.stuff;

或者,您只需存储 idel1并在需要时检索实际元素:

el2.dataset.stuff = 'el1';

// later 

var el1 = document.getElementById( el2.dataset.stuff );
于 2013-05-08T13:38:49.070 回答