从HTML中的动态表中获取单元格值

时间:2011-04-22 08:07:42

标签: javascript dom

我使用Javascript动态地将新行添加到html表中,然后使用:

var table = document.getElementById(tableID);
var rowCount = table.rows.length;
queue.innerHTML +=table.rows[rowCount].cells[1].firstChild.nodeValue + "/" +  table.rows[rowCount].cells[2].firstChild.nodeValue +"\n";

但它只返回null,因此我想知道我们可以从动态添加的行的单元格中获取值以及如何? 谢谢。

3 个答案:

答案 0 :(得分:1)

我认为rows集合是基于零的数组结构。因此,请尝试使用rowCount-1

queue.innerHTML += table.rows[rowCount-1].cells[1].firstChild.nodeValue 
                   + "/" +  
                   table.rows[rowCount-1].cells[2].firstChild.nodeValue +"\n";

此外,您可以innerText使用table.rows[rowCount-1].cells[1].innerText来获取单元格值

[编辑]跳过rowCount部分:您在添加之前分配它,因此rowCount应该有效。您应该阅读this,因为表格的innerHTML并不总能提供所需的结果。

答案 1 :(得分:1)

我认为nodeValue不是正确的选择。每this元素的nodeValue始终为null。

如果你是动态创建表行,那么将它同时添加到queue.innerHTML而不是这样做会不会更有意义吗?

答案 2 :(得分:0)

如果我正确理解你的问题,这就是我用jQuery做的。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript">
  var $lastRow = $('table tr:last');
  queue.innerHTML += $lastRow.find('td:eq(1)') + '/' + $lastRow.find('td:eq(2)')
</script>

如果您想要第一个和第二个单元格,请:eq(0):eq(1)