Editar: lo siento chicos, ya no necesito la respuesta
getElementsByTagName() es una HTMLCollection en vivo, por lo que cuando llama a c.remove() , la longitud de t se convierte en 1. Puede eludir esto almacenando en caché t.length :
var tLen = t.length; for (vi = 0; i < tLen; i++) {Parece que está tratando de usar .length para recorrer un objeto, cuando .length solo funciona en matrices.
getElementsByTagName() devuelve un objeto, no una matriz y Array.prototype.length solo funciona en matrices.
Encontré otra publicación sobre cómo obtener una matriz de getElementsByTagName(): Enlace