jquery で for 文がうまく使えません。
チェックボックスにチェックが入っているかによって、対応するテキストを表示・非表示する、というものをつくりたいのですが、うまくいきません。
下のコードだと、どのチェックボックスに操作をしても id="input4" のチェックが参照されてしまうようです。
html
1<form method="post"> 2 <input type="checkbox", name="a", id="input1"> a 3 <input type="checkbox", name="b", id="input2"> b 4 <input type="checkbox", name="c", id="input3"> c 5 <input type="checkbox", name="d", id="input4"> d 6<form> 7 8<div id="d1"> aaa <\div> 9<div id="d2"> bbb <\div> 10<div id="d3"> ccc <\div>
js
1$(function(){ 2 for (var i=1; i<4; i++){ 3 $('#input'+i).on('click', function(){ 4 if($('#input'+i).prop('checked')){ 5 $('.d'+i).fadeIn(); 6 }else{ 7 $('.d'+i).fadeOut(); 8 } 9 }) 10 } 11})
jquery のコードで for 文を消し次のように書くと、1つめのチェックボックスについては期待の動作をします。
js
1$(function(){ 2 i = 1 //追加 3 $('#input'+i).on('click', function(){ 4 if($('#input'+i).prop('checked')){ 5 $('.d'+i).fadeIn(); 6 }else{ 7 $('.d'+i).fadeOut(); 8 } 9 }) 10})
調べてみましたがわからなかったため、このような動作になる理由と、正しくはどう書くべきなのかご教授いただけるとありがたいです。また、こちらに記載したコードはつまずいている部分を単純な問題に置き換えて書き直したコードなので、間違い等ある可能性があります、すみません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/25 04:00