dataset属性不适用于对象?

时间:2013-05-08 13:34:37

标签: javascript object

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

似乎不起作用。

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

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

有效,但我不喜欢将重复内容存储在变量中。如果我有很多元素,就会占用大量内存。

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

1 个答案:

答案 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 );