Javascript .indexOf表示2个相等的元素不相等

时间:2012-01-11 19:06:55

标签: javascript jquery

$.makeArray($('ul#NavAContent li')).indexOf($('ul#NavAContent li#A1'))

id为A1的li元素位于ul#NavAContent中,但indexOf函数返回 -1 ,我做错了什么?

2 个答案:

答案 0 :(得分:1)

jQuery函数返回一个类似于数组的对象,其中包含给定选择器匹配的所有元素。这是每次都有一个新数组,因此您使用indexOf搜索的数组与提供给makeArray的数组不同。

这有效(并且应该证明问题):

$.makeArray($('ul#NavAContent li')[0]).indexOf($('ul#NavAContent li')[0])

答案 1 :(得分:1)

您不是要比较元素,而是比较jQuery对象(它们是元素的容器);

$("#footer") !== $("#footer")

$("#footer")[0] === $("#footer")[0]

(在此页面上进行了测试)

这样做:

$('#NavAContent li').toArray().indexOf( $('#A1')[0] );

我删除了一些限制词,希望上帝你没有使用具有相同id的多个元素。