2013-03-19 33 views
0
 <div class="login-info-panel">   
     <ul> 
     <li class="home">Home</li> 
     <li class="info">info</li> 
     </ul> 
     </div>  


      var myli = $('.login-info-panel > ul >li'); 
    var infoButton = $('li.info'); 
    console.log(_.indexOf(myli, infoButton)); 

使用underscore.js,你会假设li.info是在数组中,它会回击1(索引)的值。而是我得到-1(这意味着它不会在我的阵列中发现_.indexOn找不到我的数组值

我失去了一些东西很明显

这里是一个的jsfiddle

http://jsfiddle.net/Zuriel/UVqGH/

+0

Infobutton本身是一个DomElement集(数组),你必须引用第一个元素。所以'_.indexOf(myli,infoButton [0])'起作用。 – Christoph 2013-03-19 15:36:15

回答

0

你可以简单的使用:?

var myli = $('.login-info-panel > ul >li'); 
var infoButton = $('li.info'); 
console.log(_.indexOf(myli, infoButton[0])); // 1 

我认为所需的行为是:

myli.filter(infoButton); // [jQuery Object] 
1

我不会用这种方式混合jquery和下划线。

var myli = $('.login-info-panel > ul >li'); 
var index = myli.index('li.info'); 
+0

就像使用'.index' – andlrc 2013-03-19 15:36:40

+0

我该怎么混合?我有我的语法的方式? – Zuriel 2013-03-19 15:37:03

+0

@ZurielAndrusyshyn jquery对象已经有很多你应该使用的功能。 – 2013-03-19 15:37:49