我有一个页面上有多个音乐播放器,需要制作一个索引来拉出当前播放器的位置。问题是currentPlayer不是一个小孩,所以使用.find或.filter然后.index将始终返回值为0,因为数组中没有其他的。
所以我需要在播放器阵列中找到.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()将搜索其父元素的元素。所以,因为现在是唯一的孩子,它是零。
您可以将选择器传递给.index;它会告诉jQuery在里面搜索你的元素。
var player = $('.player'),index = current.index('.player');
或者,您可以告诉jQuery在数组中搜索特定的元素:
var player = $('.player'),index = player.index(current);