jQuery inArray()查找HTML元素

jQuery inArray()查找HTML元素,jquery,arrays,Jquery,Arrays,比如说,我在这一页有5段 如果我执行: p_array=$('p'); second_p=$('p:eq(1)'); $.inArray(second_p,p_array); 我得到-1。 有什么解释吗?无论是p\u数组还是second\u p都不是数组 它们是jQuery对象 更具体地说,p_array是一个jQuery对象,包含一组5个DOM节点second\u p是一个jQuery对象,包含一组DOM节点 $.inArray可以在这些jQuery节点集上运行,但不能将一个集合与一个集合进

比如说,我在这一页有5段

如果我执行:

p_array=$('p');
second_p=$('p:eq(1)');
$.inArray(second_p,p_array);
我得到-1。
有什么解释吗?

无论是
p\u数组
还是
second\u p
都不是数组

它们是jQuery对象


更具体地说,
p_array
是一个jQuery对象,包含一组5个DOM节点
second\u p
是一个jQuery对象,包含一组DOM节点

$.inArray
可以在这些jQuery节点集上运行,但不能将一个集合与一个集合进行比较

如果使用数组下标操作符(
jQueryObj[i]
)提取一个DOM节点,则不再将集合与集合进行比较:

var p_array=$('p');
var second_p=$('p:eq(1)');
alert($.inArray(second_p[0], p_array)); // result: 1

观看现场演示。

无论是
p\u数组
还是
second\u p
都不是数组

它们是jQuery对象


更具体地说,
p_array
是一个jQuery对象,包含一组5个DOM节点
second\u p
是一个jQuery对象,包含一组DOM节点

$.inArray
可以在这些jQuery节点集上运行,但不能将一个集合与一个集合进行比较

如果使用数组下标操作符(
jQueryObj[i]
)提取一个DOM节点,则不再将集合与集合进行比较:

var p_array=$('p');
var second_p=$('p:eq(1)');
alert($.inArray(second_p[0], p_array)); // result: 1

请看一个实时演示。

两个
p\u array
second\u p
都是类似于数组的jQuery对象。您希望为
提取实际的DOM节点,并对其进行如下测试:

$.inArray(second_p[0], p_array);

该调用按预期为我返回
1
p\u array
second\u p
都是类似于数组的jQuery对象。您希望为
提取实际的DOM节点,并对其进行如下测试:

$.inArray(second_p[0], p_array);

该调用按预期为我返回
1

second\u p
是一个jQuery对象,
p\u array
是一个类似数组的对象,包含DOM节点。。。因此,
p_数组
显然不包含
second_p
。为什么不
second_p=p_数组。eq(1)?您不必要地进行了两次查找。
second\u p
是一个jQuery对象,
p\u array
是一个类似数组的对象,其中包含DOM节点。。。因此,
p_数组
显然不包含
second_p
。为什么不
second_p=p_数组。eq(1)?你做了两次不必要的查找。@xiaohan2012:是的,我们喜欢:)@xiaohan2012:是的,我们喜欢:)