jQM:获取活动页面的索引

时间:2012-04-26 18:15:17

标签: jquery jquery-mobile

如果我有这样的结构:

<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>

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

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

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

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

1 个答案:

答案 0 :(得分:4)

使用index()

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

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

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

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

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

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

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

参考文献: