2014-01-22 3 views
3

Можно ли ограниченные результаты, возвращаемые в JQueryJQuery ограничить результаты/выбор вернулся

<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> 

Этот выход будет:

OneTwoThreeFourFiveSix

Но я хочу:

OneTwoThreeFour

Demo Fiddle: http://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

Вы можете так sir =)! – 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()); 

    }) 
Смежные вопросы