我在一个页面上有多个音乐播放器,需要对它们做一个索引以从中拉出当前播放器的位置。问题是currentPlayer
不是孩子,因此使用.find
或.filter
然后.index
将始终返回值0
,因为没有其他内容在阵列中。
所以我需要在.currentPlayer
数组中找到player
的索引。
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();
答案 0 :(得分:34)
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);
答案 1 :(得分:5)
答案 2 :(得分:1)
var position = 0;
$('.player').each(function(i){
if ($(this).hasClass('currentPlayer') == true) { position = i; }
});