Сегодня у меня возникают самые странные проблемы с Javascript в Firefox.
Я пытаюсь манипулировать некоторыми строками таблицы, но .getElementsByTagName("tr");
отбрасывает мусор.
dynamicTable.tableBody = dynamicTable.getElementsByTagName("tbody")[0];
var tableRows = dynamicTable.tableBody.getElementsByTagName("TR");
var actualTableRows = new Array();
for(var i in tableRows) {
var row = tableRows[i];
alert(row.tagName);
if(row.tagName == "TR"){
actualTableRows.push(row);
}
}
dynamicTable.bodyRows = actualTableRows;
Загадочная часть, конечно, мой временный взлом, чтобы исправить ошибку.По какой-то причине .getElementsByTagName("tr")
также возвращает некоторые функции.
Кстати, приведенное выше предупреждение выглядит примерно так: «TR TR TR TR undefined undefined undefined».
Код, который я хотел, был чем-товот так
dynamicTable.bodyRows = dynamicTable.tableBody.getElementsByTagName("tr");
Но тогда bodyrows
не содержит только <tr>
элементов, в нем есть вышеупомянутый мусор.
Есть мысли?
РЕДАКТИРОВАТЬ: Если я просто использую второй блок кода, я получаю список длиной 24 элемента в таблице, которая имеет 21 строку таблицы (элементов tr).Первый блок кода - это просто взлом, который решает проблему.
Если я изменил предупреждение на alert(row)
, я получу:
[object HTMLTableRowElement]
...
function item() {
[native code]
}
21
function namedItem() {
[native code]
}