jQuery inArray()查找HTML元素
比如说,我在这一页有5段 如果我执行: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节点集上运行,但不能将一个集合与一个集合进
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:是的,我们喜欢:)