为什么jQuery索引为数组中的0返回-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));
为什么jQuery索引为数组中的0返回-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));
为什么jQuery索引返回数组中的
-1
a ?0
因为你用错了。您使用 jQuery 对象构造函数包装它。jQuery 期望它的索引槽包含真实的对象(对 DOM 元素的引用)。因此,当您传入 时0
,它是falsy,并且第一个条件失败(只需要真实的参数;jQuery 旨在处理不传递的参数)。
// No argument, return index in parent
if ( !elem ) {
return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
}
如果您从0
(falsy) 更改为5
(truthy),它会按预期工作。
如果要在数组中查找某些内容的索引,indexOf()
请在普通数组上使用。如果您必须使用 jQuery,请使用$.inArray()
(这确实具有在Array.prototype.indexOf()
不存在的地方工作的优势)。