jQuery eq要素のインデックスを取得する
jQuery eq要素のインデックスを取得する
eqは指定した要素のインデックスを指定する。
サンプル
$(“セレクタ”).eq(番号).メソッド
<html>
<head><script src=”jquery-3.2.1.js”></script>
<script>
$(function(){
$(“.botton”).click(function(){
$(“li”).eq(1).css(“color”,”red”) });
});
</script>
<title>
</title>
</head>
<body>
<input type=”button” value=”botton” class= “botton” ><div>
<ul>
<li>1</li>
<li >2</li>
<li class=”three”>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>
</body>
</html>
実行結果は
2が赤になります。
配列とかと一緒で0から番号は始ます。
1を指定するということは2を取得したことです。
0→1
1→2
つまりマイナス1されるこいうことです。
jQuery eq要素のインデックスを動的に増やす
変数を宣言して動的にインデックスを増やす。
まずindexとう名前の変数に0で宣言と代入します。
その変数の値をeqで取得します。
サンプル
<html>
<head><script src=”jquery-3.2.1.js”></script>
<script>
$(function(){
index=0;
$(“.botton”).click(function(){
$(“li”).eq(index).css(“color”,”red”) });
});
</script>
<title>
</title>
</head>
<body>
<input type=”button” value=”botton” class= “botton” ><div>
<ul>
<li>1</li>
<li >2</li>
<li class=”three”>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>
</body>
</html>
実行結果は
ボタンをクリックする度に要素が赤くなります。
前の実行したeq関数はリセットされていないので
5回クリックしたら全部赤くなります。
jQuery eq要素の前の要素を初期化
このままだと前の色が赤でよくわかりません。
前の色を初期化しましょう。
サンプル
<html>
<head><script src=”jquery-3.2.1.js”></script>
<script>
$(function(){
index=0;
$(“.botton”).click(function(){
$(“li”).eq(index).css(“color”,”red”) });
$(“li”).eq(index-1).css(“color”,”black”)
});
</script>
<title>
</title>
</head>
<body>
<input type=”button” value=”botton” class= “botton” ><div>
<ul>
<li>1</li>
<li >2</li>
<li class=”three”>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>
</body>
</html>
実行結果は現在のインデックスだけできてますね。
前の要素を黒に戻したかったので要素を指定するため-1と書きました。
$(“li”).eq(index-1).css(“color”,”black”)
5回以上からは消えてしまいます。
jQuery eq要素の最初に戻す
5回目からは動かないので初期化して先頭に戻します。
サンプル
<html>
<head><script src=”jquery-3.2.1.js”></script>
<script>
$(function(){
index=0;
$(“.botton”).click(function(){
if(index > 5){
index=0;
}
$(“li”).eq(index).css(“color”,”red”) });
$(“li”).eq(index-1).css(“color”,”black”)
});
</script>
<title>
</title>
</head>
<body>
<input type=”button” value=”botton” class= “botton” ><div>
<ul>
<li>1</li>
<li >2</li>
<li class=”three”>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>
</body>
</html>
実行結果はちゃんと先頭に戻って動きます。
if(index > 5){
index=0;
}
5より大きい場合は0に戻して初期化してます。
6回目で完全に選択が消えてから7回目で先頭に戻ります。