我今天在 Firefox 中遇到了最奇怪的 Javascript 问题。
我正在尝试操作一些表格行,但.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>
元素,还包含上述垃圾。
有什么想法吗?
编辑:如果我只使用第二个代码块,我会在一个有 21 个表行(tr 元素)的表上得到一个 24 个元素长的列表。第一个代码块只是解决问题的 hack。
如果我将警报更改为alert(row)
我得到:
[object HTMLTableRowElement]
...
function item() {
[native code]
}
21
function namedItem() {
[native code]
}