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

動作しないようです。

後で、el1 の innerHTML プロパティにアクセスできるようにする必要があります。

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

動作しますが、重複したコンテンツを変数に保存するという考えは好きではありません。多くの要素がある場合、多くのメモリを消費します。

データセットには文字列が必要だからだと思いますか?それが本当なら、 el2 内の別の要素への参照を設定するにはどうすればよいですか?

4

1 に答える 1

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 );
于 2013-05-08T13:38:49.070 に答える