8 is at index : ' + $(myArray).index(8));document.write('
4 is at index : ' + $(myArray).index(4));document.write('
0 is at in">
为什么数组中的0,jQuery索引会返回-1?
var myArray = [0,4,8];
document.write('<br/>8 is at index : ' + $(myArray).index(8));
document.write('<br/>4 is at index : ' + $(myArray).index(4));
document.write('<br/>0 is at index : ' + $(myArray).index(0));
发布于 2013-01-07 03:13:33
为什么jQuery索引会为数组中的
0
返回-1
?
因为你没有正确使用它。您正在用jQuery对象构造函数包装它。jQuery期望它的索引槽包含对象(引用DOM元素),这些对象是真实的。因此,当您传入0
时,它是错误的,并且不符合第一个条件(只需要真实的参数;jQuery旨在处理不传递的参数)。
// No argument, return index in parent
if ( !elem ) {
return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
}
如果从0
(假)更改为5
(真),则返回it works as expected。
如果要查找数组中某项内容的索引,请在普通数组上使用indexOf()
。如果必须使用jQuery,请使用$.inArray()
(这样做的好处是可以在不存在Array.prototype.indexOf()
的情况下工作)。
https://stackoverflow.com/questions/14189340
复制