2015-07-02 104 views
0

请看:http://jsfiddle.net/dmhsfds4/jquery Index()无法正常工作?

主要指数给出-1所有的时间,即使是存在与.current类元素,当函数运行。

这是一个错误?

<p class="current" id="one">Point 1</p> 
<p id="two">Point 2</p> 
<p id="three">Point 3</p> 
<p id="four">Point 4</p> 
<p id="five">Point 5</p> 
<p id="six">Point 6</p> 
<p id="seven">Point 7</p> 

var p = $('p'); 
var i = 0; 
setInterval(function(){ 
    i +=1; 
    if (i>6) i=0; 

    console.log(p.index('.current')); 

    p.removeClass('current').eq(i).addClass('current'); 
},1000); 
+0

你的HTML是这个问题的一个组成部分。请将所有相关代码直接放在问题中,而不是让问题依赖于场外资源。 –

+1

这是jQuery API最糟糕的例子之一。这是完全不明确的,可以说是更直观的方式来解释它的含义。但jQuery只是喜欢用不同行为重载方法。他们会更好地使用不同的命名方法,比如'element.getIndexIn(collection)'和'collection.indexOf(element)'。 –

回答

2

您需要更改p.index()$('p.current').index()p.index()只是检查第一个p不是每一个。 这是fiddle

0

jQuery docs提到的,

功能.index()接受一个元素作为像这样的参数。

p.index($('.current')) 

类或ID这样的。

p.index('.current') OR p.index('#someId')

这里是更新fiddle

+1

文档显示它*不接受选择器字符串,但是当您这样做时,它的行为会有所不同。 –