Javascript jQuery对象索引忽略jQuery.filter()

Javascript jQuery对象索引忽略jQuery.filter(),javascript,jquery,filter,indexing,Javascript,Jquery,Filter,Indexing,方法链: $("someSelector").filter("someMoreSpecificSelector").index() 应该返回jQuery筛选数组中元素的索引 它实际上返回与以下内容相同的: $("someSelector").index() 即使jQuery数组在进行过滤时发生了很大的变化 我做错了什么?正如医生所说: 索引() 如果没有向.index()方法传递任何参数,则返回值是一个整数,指示jQuery对象中第一个元素相对于其同级元素的位置 这意味着你的代码目前正在检

方法链:

$("someSelector").filter("someMoreSpecificSelector").index()
应该返回jQuery筛选数组中元素的索引

它实际上返回与以下内容相同的

$("someSelector").index()
即使jQuery数组在进行过滤时发生了很大的变化

我做错了什么?

正如医生所说:

索引() 如果没有向.index()方法传递任何参数,则返回值是一个整数,指示jQuery对象中第一个元素相对于其同级元素的位置

这意味着你的代码目前正在检查它在它的子代码中的位置。因此,如果您的代码是这样的:

<div>
    <p>
    </p>
</div>
<div>
    <p id='yay'>
    </p>
</div>
.index()
接受参数。传递DOM对象时,对象的当前位置将位于jQuery对象内

如果对元素集合调用.index(),并传入DOM元素或jQuery对象,.index()将返回一个整数,指示传递的元素相对于原始集合的位置

所以你可以用它:

var $collection = $("someSelector");
$collection.index($collection.filter('someMoreSpecificSelector'))
var $collection = $("someSelector");
$collection.index($collection.filter('someMoreSpecificSelector'))