2011-01-14 2 views
6

У меня есть html и вы хотите выбрать интервал 5 элементов из 10-й позиции. Как это сделать?Как выбрать элементы между интервалами

Мой HTML:

<div class="chaire"> 
    <img alt="" src="2.gif"> 

</div> 
<div class="chaire"> 
    <img alt="" src="2.gif"> 
</div> 
<div class="chaire"> 
    <img alt="" src="2.gif"> 
</div> 
<div class="chaire"> 
    <img alt="" src="2.gif"> 
</div> 
... 
<div class="chaire"> 
    <img alt="" src="2.gif"> 
</div> 

Я стараюсь с JQuery:

$(".chaire:gt(10):lt(15)"); 

но выбрать меня Див и IMG теги. Но мне нужны теги div.

ответ

4

Ваш код делает работу очень хорошо, и выбирает только <div> элементы. Взгляните на this example fiddle, где находится 5 <div> элементов после 10-го ( :gt(9):lt(15)).


Селектор вы должны выбрать только элементы с таким именем класса, в случае вашего примера HTML, это просто <div> элементы. Нет элементов <img>. Как уже указывал rcravens, два селектора изменяют результат отдельно, поэтому вам нужно сначала использовать :lt() - :lt(15):gt(9).

Обновленный пример: http://jsfiddle.net/teQkf/3/. Следующая часть кода примера находит элементы <img> в результате и изменяет их src на что-то другое.

Вы лучше использовать slice, которая только одна операция на результат и, следовательно, менее запутанным, не говоря уже быстрее:

$(".chaire").slice(10,15); 

(example)

+0

Я не согласен. Пример: gt (9): lt (15) выглядит так, как будто он работает, потому что в этой серии есть только 5 элементов. Я обновил ваш пример, чтобы показать: http://jsfiddle.net/rcravens/teQkf/2/ – rcravens

+0

@ rcravens: Да, я просто подумал об этом. Перестановка селекторов вокруг исправляет проблему, поэтому я обновил свой ответ. Я бы определенно рекомендовал использовать 'slice', чтобы избежать такого путаницы. –

2

попробовать это:

$(".chaire:gt(10):lt(5)"); 

Вот jFiddle играть с.

http://jsfiddle.net/rcravens/m3j6K/

Похоже, сцепление с «GT» и «LT» селекторов означает «LT» применяется к тому, что остается после «» GT.

Боб

+0

Если вы хотите сохранить '10 'и' 15 ', примените' lt 'сначала и' gt 'второй. Я обновил jFiddle, чтобы включить пример: http://jsfiddle.net/rcravens/m3j6K/1/ – rcravens

+0

Стоит упомянуть, что оба селектора принимают нулевые целые числа в качестве аргументов, поэтому 0 - это первый элемент, 1 - из вторых и т. д. Поэтому ': gt (10): lt (5)' фактически выбирает элементы 12-15, которые являются всего лишь 4 элементами. См. Обновление к собственному примеру: http://jsfiddle.net/m3j6K/3/ –

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