大分前にjqueryのdataメソッドについて書きましたが、attrメソッド経由で操作するのと、dataメソッド経由で操作するのとでは若干挙動が違うみたいなので、まとめてみた。
<script type="text/javascript">
jQuery(function(){
console.log($('div').attr('data-foo')) //undefined
$('div').attr('data-foo',1);
console.log($('div').attr('data-foo')) //1
console.log($('div').data('foo')) //1
$('div').data('foo',2);
console.log($('div').attr('data-foo')) //1
console.log($('div').data('foo')) //2
});
</script>
<div ></div>attrメソッドを使って書き換えた場合、dataメソッドで取得する側にも値が反映されるが、dataメソッド経由で値を設定した場合、attrメソッドの場合と結果が変わってしまう場合がある。これは注意したいなー。
参考
jQueryのカスタムデータ属性(data-*)の設定/取得の挙動が思ったのと違った件
0 コメント:
コメントを投稿