javascript:遍历表格中的所有单元格

新手上路,请多包涵

我正在尝试遍历表格中的所有单元格并对值进行比较。

             var table = document.getElementById("assignedvlans");
            alert(table);
            alert($('#assignedvlans tbody tr').length);
            for (var i = 0, cell; cell = table.cells[i]; i++) {
                 //iterate through all cells in table.
                 alert('in the loop');
                 alert(cell.val());
                 if (cell.val == IdforVlanToAdd)
                 {
                    alert('This vlan is already associated with the port.');
                    $bexit = true;
                    break;
                 }
            }

当我测试此代码时,警报(表格)代码正在运行 - 它返回“对象 HTMLTableElement”并且表格长度的警报返回 4,这也是正确的。但是循环内的警报语句永远不会发生。你能告诉我循环控制哪里出了问题吗?谢谢。

原文由 dot 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 538
2 个回答

table 包含 rows[] ,它们本身包含 cells[] 。您无法直接从 cells[] 获取 table

如果没有嵌套表,您可以使用 table.getElementsByTagName('td') 作为快捷方式。

否则,您应该循环遍历每个 rows[] 并且在该循环中您可以循环遍历 cells[]

 var table = document.getElementById('assignedvlans'),
    rows = table.rows, rowcount = rows.length, r,
    cells, cellcount, c, cell;
for( r=0; r<rowcount; r++) {
    cells = rows[r].cells;
    cellcount = cells.length;
    for( c=0; c<cellcount; c++) {
        cell = cells[c];
        // now do something.
    }
}

原文由 Niet the Dark Absol 发布,翻译遵循 CC BY-SA 3.0 许可协议

像这样尝试:

         var $table = $('#assignedvlans tbody td');
        $.map($table,function(){
             if ($(this).text() == IdforVlanToAdd)
             {
                alert('This vlan is already associated with the port.');
                return;
             }
        });

原文由 sdespont 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题