2014-01-22 76 views
3

是否有可能jQuery的限制結果/選擇返回

<body> 
    <div id="box"> 
    <ul> 
     <li>One</li> 
     <li>Two</li> 
     <li>Three</li> 
     <li>Four</li> 
     <li>Five</li> 
     <li>Six</li>   
    </ul>   
    </div> 

    <script> 
     $(function(){ 
      var num = 4; 
      console.log($('#box').children(':first').children(num).text()); 
     }) 
    </script> 
</body> 

這將輸出jQuery中返回的限制的結果:

OneTwoThreeFourFiveSix

但我想:

OneTwoThreeFour

Demo Fiddlehttp://jsfiddle.net/JLqrc/

+0

'$('#box')。children(':first')。children()[0]'將返回第一個'$('#box')。children(':first')。children( )[1]'第二個等 – Liam

回答

6

您可以使用:lt()

$('#box').children(':first').children(':lt('+num+')'); 

或MackieeE評論縮短代碼

$('#box li:lt('+ num +')').text() 

DEMO

文檔:http://api.jquery.com/lt-selector/

+2

因此可以縮寫爲:'$('#box li:lt('+ num +')')。text()'個人我不確定需要什麼'.children(':first')'part – MackieeE

+0

@MackieeE是的,如果它的話,我會將它添加到答案 – Anton

+1

你可能會這麼想)=! – MackieeE

2

你可以使用.slice

$('#box ul li').slice(0,4).text(); 

這給你更多的控制權什麼返回4種元素 - 你可以將其更改爲.slice(1,4),它會返回TwoThreeFourFive等

下面是一個例子:JSFiddle

+1

這是最好的,有更多的控制+1 –

0
$(function(){ 
     var num = 4; 
    console.log($("#box ul li:lt("+num+")").text()); 

    })