Объяснение на примере:Как обновить функцию jQuery .each()?
$(selector).each(function() {
if (expression) {
$(this).next().remove();
}
....
});
На основе expression
я удалить элемент, который также является частью selector
, и в действительности является удалением следующего элемента функция .each()
получит.
Функция .each()
, похоже, не заботит и не запускает ее код на удаленном элементе, нарушающем процесс итерации моего кода в каждой функции. В основном значение счетчика в функции .each()
будет считать удаленный элемент, даже если он не должен.
Есть ли способ обновить или обновить функцию .each()
, чтобы она пропускала элементы, которые были удалены после ее инициирования?
Да, но я должен удалить элемент из DOM, не удаляйте его из функции .each(), поэтому фильтр не поможет. Теперь я думаю о запуске каждой функции в два раза. – Espen
@Espen Что не так: '$ (selector) .filter (function() { return expression; }). Next(). Remove();' ??? На самом деле, можете ли вы предоставить образец, показывающий ожидаемое поведение? Я не уверен, почему вы не могли просто отфильтровать его. –
Мне нужно удалить следующий элемент, если атрибут соответствует текущему элементу. Эффект, который я получаю, состоит в том, что между двумя соседними элементами нет двух соответствующих элементов. В списке это может быть начало группы, если два запуска находятся рядом друг с другом, тогда группа пуста и может быть удалена. Я не знаю ни одного фильтра, который может это сделать. Проблема заключается не в том, чтобы что-либо фильтровать, а в том, как обращаться с элементом в функции .each(), удаляемой из DOM после инициализации. – Espen