1ページに複数の音楽プレーヤーがあり、現在のプレーヤーの位置を取得するためにそれらのインデックスを作成する必要があります。問題は、currentPlayer
が子ではないため、.find
または.filter
を使用してから.index
を使用すると、他に何もないため、常に0
の値が返されることです。配列内にあります。
したがって、player
配列内で.currentPlayer
のインデックスを見つける必要があります。
HTML(非常に単純化):
<ul>
<li>
<article>
<div class="player"></div>
</article>
</li>
<li>
<article>
<div class="player currentPlayer"></div>
</article>
</li>
<li>
<article>
<div class="player"></div>
</article>
</li>
</ul>
JavaScript:
var player = $('.player'),
current = player.filter('.currentPlayer'),
index = current.index();
current.index()
は、その親で要素を検索します。 current
は一人っ子なので、ゼロです。
セレクターを.index
に渡すことができます。 jQueryにその中を検索して要素を探すように指示します。
var player = $('.player'),
current = player.filter('.currentPlayer'),
index = current.index('.player');
または、配列内の特定の要素を検索するようにjQueryに指示することもできます。
var player = $('.player'),
current = player.filter('.currentPlayer'),
index = player.index(current);
var position = 0;
$('.player').each(function(i){
if ($(this).hasClass('currentPlayer') == true) { position = i; }
});