- 特定のイベント(下記の例では
$('.btn').on('click'
)でdata-id属性
を書き換えるためにdata('id','変更後')
としています。 - これを実行して、developer-tool等で要素のプロパティを見ても
data-id="1"
は何も変わっていませんでした。 - 一方で、
$('.btn_2').on('click'
を実行すると変更後の2が取得することができました。
上記の動作するに困惑しているのですが、この様に実際には要素に変化がないのにDOM
的には変更されている原因がわかりません。また、変更後のdataの値を取得できれば結果は良いのですが、一方で、バグの温床としたくないために、適切に要素のプロパティとしても変更させたいと考えております。どの様にすれば正しく変化させることができるのでしょうか?
JSFiddle
html
1<form action="" method=""> 2 <input id ="this_input" class="input" type="text" name="inputs[]" data-id="1"> 3 <input class="input" type="text" name="inputs[]" data-id="1"> 4 <input class="input" type="text" name="inputs[]" data-id="1"> 5 <button type="button" class="btn">button</button> 6 <button type="button" class="btn_2">button2</button> 7</form>
javascript
1$(function(){ 2 $('.btn').on('click', function() { 3 $('#this_input').data('id','2') 4 }); 5 $('.btn_2').on('click', function() { 6 alert($('#this_input').data('id')) 7 }); 8});
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。