Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript:遍历表中的所有单元格_Javascript_Jquery_Html - Fatal编程技术网

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

javascript:遍历表中的所有单元格,javascript,jquery,html,Javascript,Jquery,Html,我试图循环表中的所有单元格,并对值进行比较 var table = document.getElementById("assignedvlans"); alert(table); alert($('#assignedvlans tbody tr').length); for (var i = 0, cell; cell = table.cells[i]; i++) {

我试图循环表中的所有单元格,并对值进行比较

            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;
                 }                  
            }
当我测试这段代码时,警报(表)代码正在工作——它返回“object HTMLTableElement”,表长度警报返回4,这也是正确的。 但循环中的警报语句永远不会发生。 你能告诉我环路控制哪里出了问题吗?
谢谢

表格
包含
行[]
,行本身包含
单元格[]
。无法直接从
表中获取
单元格[]

您可以使用
table.getElementsByTagName('td')
作为快捷方式,前提是没有嵌套的表

否则,您应该循环遍历每个
行[]
,在该循环中,您可以循环遍历
单元格[]

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.
    }
}
var table=document.getElementById('AssignedVLAN'),
行=表。行,行数=行。长度,r,
细胞,细胞计数,c,细胞;

对于(r=0;r
包含
行[]
,这些行本身包含
单元格[]
。无法直接从
获取
单元格[]

您可以使用
table.getElementsByTagName('td')
作为快捷方式,前提是没有嵌套的表

否则,您应该循环遍历每个
行[]
,在该循环中,您可以循环遍历
单元格[]

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.
    }
}
var table=document.getElementById('AssignedVLAN'),
行=表。行,行数=行。长度,r,
细胞,细胞计数,c,细胞;

for(r=0;r循环内没有收到任何警报的原因是您的
for
循环结构不正确。它会立即退出,因为分配
cell=table.cells[i]
返回false。

循环中没有收到任何警报的原因是您的
for
循环的结构不正确。它会立即退出,因为分配
单元格=表格。单元格[i]
返回false。

请尝试以下操作:

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

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


控制台中是否出现任何错误?table.cells无法工作,因为.cells是.rows的一部分,而不是表的直接部分。而且
cell
不是jQuery对象,因此它没有
val()
方法(它也不是任何类型的
输入
,因此在将其设置为jQuery对象后,您可能需要
text()
),我假设
cell.val
是一个输入错误..?为什么要混合使用jQuery和普通JavaScript方法?(它可以工作,但会使事情变得更复杂。)控制台中是否出现任何错误?table.cells无法工作,因为.cells是.rows的一部分,而不是表的直接部分。而且
cell
不是jQuery对象,因此它没有
val()
方法(它也不是任何类型的
输入
,因此在将其设置为jQuery对象后,您可能需要
text()
),我假设
cell.val
是一个输入错误….?为什么要混合使用jQuery和普通JavaScript方法?(它可以工作,但会使事情变得更复杂。)不,它会立即退出,因为
table.cells[I]
返回未定义的(这是错误的)。如果它是真的,那将是一个无限循环。对于那些人来说(通过谷歌来到这里)需要为
表.cells
(修补旧的/IE导向的代码)添加一个简单而小的垫片,请注意“否”,它会立即退出,因为
表.cells[i]
返回未定义的(这是错误的)。如果是真的,那将是一个无限循环。对于那些(通过谷歌来到这里)需要为
表格.单元格
(修补旧的/面向IE的代码)添加一个简单而小的垫片,看看,如果表格中有一个表格该怎么办?这个问题不是这样。因为这是问题的一个重要部分,提问者没有提到。顺便说一句,你的答案很好。我收到了错误消息语法错误:未标记的中断必须在循环或开关内"。我假设我保留for循环,并在循环中添加您的代码。?是的,没错。我复制/粘贴您的条件代码,但没有看到它包含中断指令。我已更新了答案,如果表中有一个表,该怎么办?在这个问题中不是这样的。因为这将是问题的一个重要部分,并且提问者没有提到这一点。你的回答很好。顺便说一句,我得到了错误“语法错误:未标记的中断必须在循环或开关内”。我假设我保留for循环并将您的代码添加到循环中..?是的,没错。我复制/粘贴了您的条件代码,但没有看到它包含中断指令。我已更新了我的回答我尝试了您的代码,但当我发出警报时(cell.text);所有内容都返回为未定义。这是因为
cell.text
未定义。如果您想要文本内容,请尝试
cell.firstChild.nodeValue
(如果文本是其中唯一的内容)或
text=(cell.textContent | cell.innerText)
,如果那里可能也有HTML。我已经尝试了您的代码,但当我发出警报时(cell.text);所有内容都返回为未定义。这是因为
cell.text
未定义。如果需要文本内容,请尝试
cell.firstChild.nodeValue
(如果文本是其中唯一的内容)或
text=(cell.textContent | cell.innerText)
(如果可能还有HTML)。