Если все элементы, о которых вы говорите, это братья и сестры по отношению друг к другу, тогда .nextAll()
- это функция, которую нужно использовать.
Если элементы могут появляться в любом месте на странице (независимо от того, на каком уровне они вложены), то вы можете воспользоваться тем фактом, что jQuery (начиная с версии 1.4) всегда возвращает элементы в порядок документов, даже когда вы .add()
что-то в коллекции.
Поэтому основная идея состоит в том, чтобы сначала выбрать все элементы независимо от того, находятся ли они до или после элемента «start», а затем добавить элемент «start» в коллекцию. Затем вы можете перебрать отсортированные элементы, ища положение элемента «start». Затем просто .slice()
все элементы после этой позиции:
var start = '#start';
var all = 'p';
var index;
var afters = $(all).add(start).each(function (i) {
if ($(this).is(start)) {
index = i;
return false; // quit looping early
}
}).slice(index + 1);
См. Это в действии здесь .