我有一个变量pages
pages = $("[data-role=page]:not([data-url])");
是
[
<div data-role="page" id="home" class="home ui-page ui-body-c" tabindex="0" style="min-height: 548px;">…</div>
,
<div data-role="page" id="login" class="login ui-page ui-body-c ui-page-active" tabindex="0" style>…</div>
]
但是当我使用pages.index(".ui-page-active")
时,我得到-1
- 结果不正确。
然而,当我搜索pages.index(".ui-page")
时,我得到了1
- 正确的结果。
有什么想法吗?
更新:
pages.index( $('.ui-page-active') )
返回1
- 正确的结果!但为什么the selector option没有工作?
答案 0 :(得分:3)
.index()
方法获取当前选择的第一个元素,并在您传递的选择器的所有元素中搜索它。的 See the docs 强>
<强> It may help to look at the responsible code 强>
所以当我这样做时:
$('.a').index('.b');
它将为您提供所有找到的.a
元素中第一个.b
元素的索引。
你想要的似乎与你所拥有的相反,所以可能:
// Find '.ui-page' within the '[data-role=page]:not([data-url])' set:
$('.ui-page').index('[data-role=page]:not([data-url])');
但请注意,这只会查找与您传递给.ui-page
的选择器匹配的元素中的第一个index(...)
元素。