我有一个变量 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工作?
最佳答案
.index()
方法获取当前选择的第一个元素,并在您传递的选择器的所有元素中搜索它。 <强> See the docs
It may help to look at the responsible code
所以当我这样做的时候:
$('.a').index('.b');
它将为您提供所有找到的 .b
元素中第一个 .a
元素的索引。
看起来你想要的与你拥有的相反,所以可能:
// Find '.ui-page' within the '[data-role=page]:not([data-url])' set:
$('.ui-page').index('[data-role=page]:not([data-url])');
但请注意,这只会在与您传递给 index(...)
的选择器匹配的元素中查找第一个 .ui-page
元素.
关于javascript - 为什么我的 $(selector).index(filter selector) 返回不正确的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16575266/