Действительно простой способ понять это состоит в том, чтобы поместить слово "цикл" после каждого из ключевых слов. Условия теперь имеют смысл, если они просто читаются как повседневные фразы.
break
цикл - цикличное выполнение повреждается и останавливается.
continue
цикл - цикл продолжает выполняться со следующим повторением.
Они применяются последовательно, поэтому сначала вы отфильтруете первые четыре элемента (: gt (3)
), а затем отфильтруете все элементы после шестого. (: lt (6)
) элемент уже отфильтрованного набора.
Представьте себе этот HTML:
<br/><br/>
<br/><br/>
<br/><br/>
<br/><br/>
<br/><br/>
<br/><br/>
Затем выполните следующий jQuery:
$('br:gt(3):lt(6)').addClass('sel');
Теперь у вас будет:
<br/><br/>
<br/><br/>
<br class="sel"/><br class="sel"/>
<br class="sel"/><br class="sel"/>
<br class="sel"/><br class="sel"/>
<br/><br/>
Я предлагаю вам вместо этого использовать метод slice ().
http://docs.jquery.com/Traversing/slice#startend
$('table tr').slice(2, 5).addClass("something");
Не совсем то, что вы могли подумать-
В основном, второй фильтр применяется последовательно к согласованному набору первого фильтра.
Например, на таблица с 10 строками, : gt (3)
будет фильтровать до элементов 5–10, затем : lt (6)
будет применен к 6 элементам, не фильтруя никакие.
, если вы добавите / edit к URL демонстрации, вы можете поиграть с селектором и убедиться в этом сами. Если вы измените второй фильтр на : lt (2)
, вы получите строки 5 и 6, выделенные красным
По какой-то причине : lt (6)
будет проигнорирован в этом выборе, поэтому он вернет все, что больше 3 в этом интервале.
Однако, если вы переключите его, он будет работать, как ожидалось
$('table tr:lt(6):gt(3)')
вернет 2 строки (только строки 4 и 5 находятся между 6 и 3).
** edit: ** using v.1.3.2
А также, lt (6)
не игнорируется, а не просто работает так, как я ожидал. Итак : gt (3): lt (6)
фактически вернет 6 элементов (если у вас достаточно строк, то есть)