jQuery从数组中按类获取元素的索引位置

tec*_*ant 16 arrays jquery class filter

我在页面上有多个音乐播放器,需要对它们做一个索引来拉出当前播放器的位置.问题是currentPlayer不是孩子,所以使用.find.filter然后.index将始终返回值,0因为数组中没有其他内容.

所以我需要.currentPlayerplayer数组中找到索引.

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>
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

var player  = $('.player'),
    current = player.filter('.currentPlayer'),
    index = current.index();
Run Code Online (Sandbox Code Playgroud)

Roc*_*mat 34

current.index()将搜索其父元素.所以既然current是独生子女,那就是零.

您可以将选择器传递给.index; 它会告诉jQuery在里面搜索你的元素.

var player  = $('.player'),
    current = player.filter('.currentPlayer'),
    index = current.index('.player');
Run Code Online (Sandbox Code Playgroud)

或者,您可以告诉jQuery在数组中搜索特定元素:

var player  = $('.player'),
    current = player.filter('.currentPlayer'),
    index = player.index(current);
Run Code Online (Sandbox Code Playgroud)


hay*_*art 5

你可能正在寻找

$('div.player').index($('.currentPlayer'))
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/hmartiro/3Wzbd/