2013-03-19 68 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