jQueryでクリックした要素が何番目かを調べる方法
jQueryでクリックした要素が何番目の要素かを調べる方法を紹介します。
このエントリーはビギナーの方向けの内容です。
1.問題点
次のようなHTMLを想定します。
<ul>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
<li>ddd</li>
<li>eee</li>
</ul>
たとえば、「ccc」のli要素をクリックしたときにli要素の中の3番目の要素であることを知りたいのですが、調べる方法が分かりません。
2.クリックした要素が何番目かを取得する(その1)
クリックした要素が何番目かを取得するには、index()を利用します。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
jQuery(function(){
jQuery('li').click(function(){
var index = jQuery(this).index() + 1;
alert('クリックした要素は' + index + '番目です');
});
});
</script>
<ul>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
<li>ddd</li>
<li>eee</li>
</ul>
click()イベントのブロック内で「jQuery(this).index()」を実行することでli要素のインデックスを取得することができます。
index()で取得するインデックスは「0」から開始するので、ここでは「+1」しています。
あるいは、次のように「index(this)」と記述してもOKです。
…前略…
jQuery(function(){
jQuery('li').click(function(){
var index = jQuery('li').index(this) + 1;
alert('クリックした要素は' + index + '番目です');
});
});
…後略…
サンプルを作りましたのでお試しください。
3.注意事項
2項のサンプルでは、ul要素が他に存在しない条件で説明しました。
他にもul要素が存在する場合、「jQuery(this).index()」であれば、クリックしたul要素内に閉じたインデックスを取得できますが、「jQuery('li').index(this)」では、HTMLページ内に存在するすべてのli要素でのインデックスになるので注意してください。
こちらもサンプルを作りましたのでお試しください。
- クリックした要素が何番目かを取得するサンプル(複数ul要素+「jQuery(this).index()」)
- クリックした要素が何番目かを取得するサンプル(複数ul要素+「jQuery('li').index(this)」)
Posted by yujiro このページの先頭に戻る
- jQuery+ajaxでモーダルのコンテンツを取得する方法
- jQueryでパスワードの表示・非表示を切り替えるサンプル
- jQueryでファイル選択時にプレビュー表示する方法
- ラジオボタンをjQueryで解除する方法
- テーブルのセルをポイントすると行と列を反転表示するjQueryプラグイン「Table Hover」
- jQueryで親ページからiframeのスクロールバーを非表示にする方法
- jQueryのカスタムビルドが簡単にできるサービス「jQuery Builder」
- jQueryでCSSをまとめて書き換える方法のまとめ
- 親ページからiframe内の要素にCSSを適用させる方法
- jQueryで要素を削除する方法のまとめ
- jQueryでテキストを追加するたびにスクロールさせる方法
- jQuery.ajax()でファイルをアップロードする方法
- preventDefault()で無効にしたイベントを有効にする方法
- jQueryで要素数を取得する方法のまとめ
- jQueryやJavaScriptでパスワードフィールドの文字を表示する方法
トラックバックURL
コメントする
greeting