0

したがって、HTML を追加することでドキュメントに追加できます。

$game.append('<div data-letter="A">A</div>');

または、次のことができます。

var game = document.getElementById('game');
var div = document.createElement('div');
$(div).data('letter', 'A');
game.appendChild(div);

私の質問は、これらの方法のどれが好ましいかということです。

私は速度のためにデータ属性を使用しており、現在は前の例 (.append()) を使用しています。それは正常に動作します。

ただし、この要素のデータを次のように動的に変更すると:

$(this).data('letter', 'U');

要素のメモリに保存されているデータを変更しますが、属性は更新しません。この例の属性は、「data-letter="A"」のままです。ここでも、すべてが舞台裏でうまく機能し、$(this).data('letter') を呼び出すと、'U' という文字が返されます。しかし、データ属性を避けるべきかどうか疑問に思いました。属性は追加時に一度読み取られ、メモリにアップロードされ、属性は無効になります。または、 .data() が見つからないときに属性が読み取られますか?

最適な速度性能が得られないため、後者であるかどうかが心配です。要素を追加するときに、すべてがメモリにアップロードされるようにしたいと考えています。

4

1 に答える 1

2

data属性は、関数を使用できない場合に役立ちます。

  • HTMLサーバー側を生成するとき
  • 大量のHTMLを一度に生成する場合

その他の場合、HTML文字列の属性としてデータを渡すことを好む理由はありません。より多くの解析が必要なだけです。

やや冗長な方法でjQueryを使用していることに注意してください。あなたは減らすことができます

var game = document.getElementById('game');
var div = document.createElement('div');
$(div).data('letter', 'A');
game.appendChild(div);

$('#game').append($('<div>', {data: {letter:'A'}}));
于 2013-03-19T15:20:58.437 に答える