javascript - 为什么我的 $(selector).index(filter selector) 返回不正确的结果?

标签 javascript jquery dom jquery-mobile filtering

我有一个变量 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/

相关文章:

javascript - 从 DOM 中移除元素会影响它们的事件处理程序吗?

Firefox 插件 - 套接字

javascript - 使用 Javascript TreeWalker 按类名称过滤以更改文本

javascript - jQuery点击图片显示详细图片信息的问题

javascript - 移动到不同文件时不是函数

javascript - 防止只有 <br> 的文本区域提交

php - 从 HTML ysubg DOMDocument 获取特定 ID 内的第二个 p 标签

javascript - 从元素背景中获取图像元素作为 DOM 资源

javascript - 弹窗不触发 chrome.tabs.create 的回调?

javascript - 为什么这不是 :after element working?