我使用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,因此我想知道我们可以从动态添加的行的单元格中获取值以及如何? 谢谢。
答案 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)
。