В POJS вы можете использовать коллекцию строк таблицы для итерации по всем строкам:
var rows = tableElement.rows;
for (var i=0, iLen=rows.length; i<iLen; i++) {
/* do something with rows[i] */
}
строк это живой NodeList. В некоторых браузерах быстрее сначала преобразовать его в массив, потому что браузер не знает, был ли список изменен или нет, поэтому каждый раз, когда вы получаете к нему доступ, он обновляется.
Более поздние браузеры достаточно умны, чтобы этого не делать, но, несмотря на это, это проблема только больших таблиц или проблема производительности.
В вашем коде:
var firstRow = tbl.getElementsByTagName("TR")[0];
может быть:
var firstRow = tbl.rows[0];