0

如果我有这样的结构:

<body>
 <div data-role="page" data-dom-cache="true" id="foo">...</div>
 <div data-role="page" data-dom-cache="true" id="bar">...</div>
 <div data-role="page" data-dom-cache="true" id="baz">...</div>
</body>

如何获得 bar 在这一系列 div 中的位置?在这种情况下,它应该返回 2。

我正在使用它来尝试获取 jquery mobile 中当前页面的索引。现在我正在做:

$( '#<%=@page_id%>' ).bind( 'pageshow',function(event){
    alert('current page = '+$.mobile.activePage.index())
})

但这向我显示第一页的 index=1,第二页的 index=3,然后从那里线性增加到 4,5...

4

1 回答 1

4

使用index()

var index = $('#bar').index();

这将返回元素在其兄弟元素中的索引位置,或者您可以传递一个选择器:

var index = $('#bar').index(selector);

其中jQuery将返回$('#bar')由传递给index的选择器返回的匹配元素中的索引位置。

请注意,JavaScript 适用于从零开始的数组;所以上面的(在第一个)将返回1(不是2)。如果你必须2记得明确+ 1

var index = $('#bar').index() + 1;

但是,当使用该index变量(可能与eq())时,请记住针对该添加进行调整,否则事情可能会意外中断。或者,至少,以不同的方式工作。

参考:

于 2012-04-26T18:15:57.997 回答