что значит пустая строка? то есть во всех ячейках строки ничего нет?
я б вообще вот так сделал
//ПРосто создаю таблицу (у тебя готовая вроде есть)
var table = document.createElement("TABLE");
for(var r = 0; r < 10; r ++){
table.appendChild(
function(){
var tr = document.createElement("TR");
for(var c = 0; c < 20; c ++){
tr.appendChild(
function(){
var td = document.createElement("TD");
td.style.padding = "10px";
td.style.border = "1px solid #def";
return td;
}()
);
}
return tr;
}()
);
}
//заполняю пару строчек (у тебя все есть уже)
var nums = [3,6,9];
for(var i = 0; i < nums.length; i ++){
for(var c = 0, cl = table.rows[nums[i]].cells.length; c < cl; c ++){
if(Math.random() > Math.random()) table.rows[nums[i]].cells[c].innerHTML = c;
}
}
document.body.appendChild(table);
//и вот такой обработчик
table.onclick = function(e){
//определяем по ячейке какой строки кликнули
var tr = function(event){
return event.target || event.srcElement;
}(e || window.event).parentNode;
//если вдруг оказалось что кликнули не по ячейке а между ячейками в borderSpacing то выходим
if(tr.tagName != "TR"){
return false;
}
//проверяем все ячейки на наличие внутренностей
//если ни в одной ячейке ничего нет в строке, то значит она пустая
var matches = 0;
for(var c = 0, cl = tr.cells.length; c < cl; c ++){
//считаем пустые ячейки
if(!tr.cells[c].innerHTML) {
matches ++;
}
}
//если все яячейки не были пустыми
if(!(matches == tr.cells.length)){
//красим
tr.style.backgroundColor = "red";
}
return false;
}