el2.dataset.stuff = document.getElementById('el1');
好像不行。
稍后我需要能够访问 el1 的 innerHTML 属性。
el2.dataset.stuff = document.getElementById('el1').innerHTML;
可行,但我不喜欢在变量中存储重复内容的想法。如果我有很多元素,它会占用大量内存。
我猜是因为数据集需要字符串?如果是这样,我该如何设置对 el2 中另一个元素的引用?
最佳答案
实际上,您可以根据定义将字符串存储在 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 );
关于javascript - 数据集属性不适用于对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16442150/