jQuery .index()返回一个负数

时间:2012-03-20 16:42:03

标签: jquery

也许这只是一个简单的错误,但这件事让我发疯了。 我想知道为什么这个jQuery行返回 -1

$('td[class!="traco"]:last').index('td.diaNormal')

首先,当此函数返回负数时?为什么会这样? 提前谢谢大家,费尔南多。


编辑:

最有趣的是我的页面有我正在寻找的元素,而且 jQuery索引只返回-1。


EDIT2: 这是我的HTML http://jsfiddle.net/bv7SU/

4 个答案:

答案 0 :(得分:5)

在进行搜索/查找时,编程模型非常标准,它返回索引以指示负数为-1的“未找到”(当然,因为索引将从零开始(0)) 。所以,你所看到的是成功通话的结果(从某种意义上说它起作用),但没有找到符合你标准的任何东西。

如果不是这种情况,您究竟会如何确定是否找到了某些东西?通常需要区分“这个工作!”,“这个工作,但是...... ”和“这个失败了! ”。

有时会有一个替代方案,例如一个只是如此命名和记录的方法,以使几乎与另一个相同,但不同之处在于“抛出异常'工作,但是'“,这通常也很有用。但是你通常需要在需要的时候注意后面的模式。

答案 1 :(得分:2)

我不知道这是否是您正在寻找的答案,但根据docs“index()”如果jQuery找不到您尝试的任何元素,则返回-1看。

编辑:我已经将你的jQuery代码作为onDomReady添加到你的小提琴中,我的索引为29.你如何运行你的jQuery代码?

new fiddle

答案 2 :(得分:1)

当找不到与.index(selector)传递的选择器匹配的对象时,它返回-1。

来自.index()的jQuery文档:

  

如果选择器字符串作为参数传递,则.index()返回一个   整数,表示原始元素相对于的位置   选择器匹配的元素。 如果找不到该元素,   .index()将返回-1。

答案 3 :(得分:0)

答案在documentation

  

如果选择器字符串作为参数传递,则.index()返回一个   整数,表示原始元素相对于的位置   选择器匹配的元素。 如果找不到该元素,   .index()将返回-1。

相关问题