Независимо от того, какое действие вы будете выполнять над выбором, jQuery сделает этот выбор перед применением этого действия .Я имею в виду, что $('div')
является селектором, процесс выбора происходит до и независимо от других связанных методов (таких как each()
).Это продукт языка, так как $()
должен быть оценен до того, как к нему может быть вызван метод.
Если этот выбор захватил три элемента div с вашей страницы, то теперь в списке 3 объекта jQueryготов к повторению. Вы можете доказать это, выполнив :
$('div').length
Таким образом, вы перебираете массив с тремя индексами (0, 1, 2), если вы удаляете div из DOM для индекса1, следующая итерация обратного вызова each()
все еще будет для объекта с индексом 2. Проверьте это живое демо для доказательства:
DEMO: http://jsfiddle.net/marcuswhybrow/HYJa4/