Функция children () не синхронизируется. Вы должны выполнить это снова, если вы изменили DOM. При изменении вы можете иметь обратный вызов, который переделывает ваш массив совпадающих элементов. Это не механизм кэширования, это как работает JavaScript: линейный. Ajax-вызовы иногда кэшируются, но здесь это не так.
Рекомендация
Всегда используйте последнюю версию jQuery: 1.3.2 сейчас.
Обновление . Так вот ваш код:
function removeGroup() {
var groupNodes = [ $('#row1')[0], $('#row2') ]; // is this correct?
var parent = groupNodes[0].parentNode;
if ( $(parent).children().length > 2) {
parent.removeChild(groupNodes[0]); // why not use dirrectly $('#row1')[0].remove();?
parent.removeChild(groupNodes[1]); // same here
} else {
alert("Can't delete last group");
}
}
Этот код не имеет ничего общего с кэшированием, и большая его часть даже не проходит через jQuery.
Лучше объясни, что ты хочешь сделать и сделаешь.