2014-03-30 172 views
0

比方说,我有一个的jQuery选择第n个孩子

ul 
    > li 
    > li 
    > li 
    > li 
</> 

我想李徘徊的时候做的东西,但它必须是略有不同的关于当前所选里数。我可以通过数据切换来完成,但我不想那样使用它。

所以我的问题是我该如何计算我在ul中选择了哪个序列li?

例如:第一,第二,第三

+1

请问您可以添加您的js代码吗? – Biduleohm

+0

你的意思是像第n个孩子的选择器? http://css-tricks.com/how-nth-child-works/ – Sebsemillia

+0

我想为每一个不同的事物做一些不同的事情,但它与选择之前的事情有关。 Biduleohm - 有点伪代码: $('li.1') - > var x * = 1; $('li.2') - > var x * = 2; $('li.3') - > var x * = 3; $('li.4') - > var x * = 4; –

回答

3

试试这样说:

$('li').mouseover(function() { 
    var _in = $(this).index(); 
    switch(_in) { 
     case 0: 
      alert('You hovered the first <li>!'); 
     break; 
     case 1: 
      alert('You hovered the second <li>!'); 
     break; 
     case 2: 
      alert('You hovered the third <li>!'); 
     break; 
    } 
}); 
+1

牛眼!这完成了这项工作,谢谢! –

+0

也应该考虑鼠标。例如,如果您添加点击,您应该也可以将其删除 – JohanVdR

1

使用.index()

$('li').mouseover(function(){ 
    var x = $(this).index(); 
}) 

从文档:

如果没有参数被传递给所述的.index()的方法,所述返回值是 的整数,指示在第一元件的 jQuery对象相对于其兄弟元素内的位置。

请注意.index()是从零开始的。