次のようなdivがあります。
<div class="enemy" data-level="1" data-dmg="10" data-hp="50" data-type="A" data-ready_to_breed="false"><span>Enemy 1</span></div>
<span>
ユーザーが常にdiv(または「敵」)の状態を確認できるように、データタグの内容を表示するにはどうすればよいですか
次のようなdivがあります。
<div class="enemy" data-level="1" data-dmg="10" data-hp="50" data-type="A" data-ready_to_breed="false"><span>Enemy 1</span></div>
<span>
ユーザーが常にdiv(または「敵」)の状態を確認できるように、データタグの内容を表示するにはどうすればよいですか
data
プロパティにアクセスするには、を使用します.data()
。
$('.enemy').data('type'):
$('.enemy').data('ready_to_bread'):
等々。
span
aboutに表示するには、次をenemy
試してください。
var enemy = $('.enemy');
$('span', enemy).html(enemy.data('type'))
var enemy = $('.enemy'),
var data = enemy.data();
$.each(data, function(key, val) {
enemy.append($('<span/>', {
'class' : key, // if you need then can add class like this
html: key + " : " + val + '<br>'
}));
});
次のように、div 内に新しい要素を追加できます。
$('.enemy').each(function(){
var $this = $(this);
$this.children().append($('<span />').html('Level: ' + $this.data('level')));
$this.children().append($('<span />').html('Dmg: ' + $this.data('dmg')));
});
実際の例: http://jsfiddle.net/ZJDEu/
これにより、次のようなマークアップが生成されます。
<div class="enemy" data-ready_to_breed="false" data-type="A" data-hp="50" data-dmg="10" data-level="1">
<span>
Enemy 1
<span>Level: 1</span>
<span>Dmg: 10</span>
</span>
</div>
もちろん、jquery を変更して任意のマークアップを作成することもできます。
それが私だったら、少し違うものを選びます:
$('.enemy').each(function(){
var $this = $(this);
$this.append($('<span />').addClass('level').html($this.data('level')));
$this.append($('<span />').addClass('dmg').html($this.data('dmg')));
});
これはマークアップを形成します:
<div class="enemy" data-ready_to_breed="false" data-type="A" data-hp="50" data-dmg="10" data-level="1">
<span>Enemy 1</span>
<span class="level">1</span>
<span class="dmg">10</span>
</div>
これは、スタイリング/レイアウトの目的で処理するのが少し簡単だからです.