2012-03-20 128 views
2

也许这只是一个简单的错误,但这件事让我发疯。 我想知道为什么这个jQuery线路正在返回-1jQuery .index()返回一个负数

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

首先,当这个函数返回一个负数?为什么会发生? 谢谢大家,费尔南多。


编辑:

最野趣的事情是,我的页面有我期待的元素,和 jQuery的指标只是返回-1。


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

+1

随着HTML是这个正在运行什么,你可以发表[现场演示](HTTP。? //jsfiddle.net/)? – 2012-03-20 16:42:42

+0

是负数-1? – 2012-03-20 16:44:52

+0

恐怕HTML太大,张贴在这里, – 2012-03-20 16:56:51

回答

5

它是在编程模型非常标准时做搜索/发现收益指数来表示“未发现”与负一(-1)(自然的负数,这是因为指数将从零开始(0))。所以,你看到的是一个成功的调用的结果(在它的工作意义上),只是没有找到任何符合你的标准的东西。

如果情况并非如此,您将如何确定是否发现了某些内容?经常需要区分“这个工作!”,“这个工作,但... ... -“,”“失败!

有时会有替代,如只是如此命名,并记录在案,以表现几乎相同的另一种方法,但用的区别” 抛出一个异常的‘的工作,但’ ”,这往往也是有用的,但一般需要是在寻找后者的模式,当你需要他们

+0

这是与用户名“失望先生”一个人一个非常详细的和有用的答案! :) – 2012-03-20 17:14:58

1

返回-1时,选择相匹配的对象作为.index(selector)后仍未找到。

从jQuery文档.index()

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

2

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

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

new fiddle

+0

我喜欢我的朋友以前说过,现在我认识到问题是:指数的最后一个方法这一翻译()。不知道为什么它不起作用。 :/ – 2012-03-20 17:54:03

0

答案是在documentation

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