[jQuery] index()でクリックされたhtml要素が何番目の要素かを知る
スポンサーリンク
クリックされた要素が何番目のものかを知りたいときがあります。例えば並んでいるボタンのうち、何番目のものが押されたかを知りたい時などです。
クリックすると何番目のボタンが押されたかを表示します。
こういう場合はjQueryのindex()
を使います。
index()は引数で指定された要素のインデックス番号を返す関数です。上の場合だと、$("button").index(this)
と書くと、クリックされたボタンが、ドキュメント上の何番目にあるボタンかを返してくれます。
上のケースでは以下ようなコードになっています。
<ul> <li><button>ボタン1</button></li> <li><button>ボタン2</button></li> <li><button>ボタン3</button></li> </ul> <script> jQuery(function($){ $("ul>li>button").click(function(){ var index = $("ul>li>button").index(this); index += 1; alert( "ボタン"+index+"がクリックされました。" ); }); }); </script>
$("button").index(this)
だと、ページ上のすべてのボタン要素の中で何番目かを算出するので、$("ul>li>button").index(this)
と書くことで、リストの中にあるボタンに限定しています。
インデックス番号は0から始まりますので、1番目のボタンの場合、インデックス番号は0になります。なので、上のコードではインデックス番号に+1しています。
スポンサーリンク
jQueryカテゴリーの投稿
- [jQuery] $.ajaxのコールバック関数にcontextで値を渡す
- [jQuery] 文字列が含まれているかどうかの判定
- [jQuery] rowspanを持つtableで行の表示・非表示を切り替える
- [jQuery] find()とchildren()の使い分け
- jQueryとPHPでAJAX通信を行う
- [jQuery] $('form').change()でフォーム全体の変更を監視する
- [jQuery] 属性が存在するかどうかチェックするコード
- [JS][jQuery] 要素の存在を確認する6通りのコードと実行速度
- [jQuery] tableの内容を取得する
- [jQuery] clone()で操作対象のエレメントを元の位置に保つ