Для начала: нафига последнее i++?
Затем: А кто сказал, что Date.parse() нормально работает со строкой типа '10.02.2009'?
И третье: не совсем правильный подход к написанию скрипта..
function del(){
var date = new Date();
var Months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'July', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
var table = document.getElementById("tableId");
var trs = table.getElementsByTagName("tr"); // все строки
var i = trs.length;
while (i) {
var td = trs[--i].getElementsByTagName('td');
var cnt = td.length;
for (var j = 0; j < cnt; j++) {
var data = td[j].innerHTML;
var data_arr = data.split('.');
if (data_arr.length > 0) {
m = Months[data_arr[1] - 1];
d = data_arr[0];
y = data_arr[2];
alert('date = ' + d + ' ' + m + ' ' + y + ' parse = ' + Date.parse(d + ' ' + m + ' ' + y));
alert(date.getTime());
if (Date.parse(d + ' ' + m + ' ' + y) < date.getTime()) {
table.deleteRow(i);
break;
}
}
}
}
}
Вот как-то так. Это работает и все удаляет как надо.. Все строки, в которых дата меньше сегодняшней.. Я думаю, переделать под нужную дату труда уже не составит