我有以下HTML表格:
<table id="review-total">
<tbody><tr class="wlp">
<td class="left-cell">WLP Total</td>
<td>199.00</td>
</tr>
<tr class="tax">
<td class="left-cell">GST</td>
<td>19.90</td>
</tr>
<tr class="net">
<td class="left-cell">Order Total</td>
<td class="net-price">$218.90</td>
</tr>
</tbody>
</table>
我试图遍历此表并检索值,即
199.00,19.90和$ 218.90我有以下代码:
var reviewTotal = document.getElementById('review-total');
for (var i = 1; i < reviewTotal.rows.length; i++) {
if (reviewTotal.rows[i].cells.length) {
wlpTotal = (reviewTotal.rows[i].cells[1].textContent.trim());
gstAmount = (reviewTotal.rows[i].cells[3].textContent.trim());
totalOrderAmount = (reviewTotal.rows[i].cells[5].textContent.trim());
}
}
我在尝试检索上面指定的值时遇到一个小问题,目前我得到的错误是textContent未定义。
有人可以告诉我应该如何检索这些值,不幸的是我在Javascript中并不强大。
答案 0 :(得分:3)
您有3行,每行只有2个单元格。 3和5指数为undefined
,undefined
没有.textContent
属性。
如果要使用特定变量名存储值,请删除循环并手动选择目标元素:
var wlpTotal = reviewTotal.rows[0].cells[1].textContent.trim();
var gstAmount = reviewTotal.rows[1].cells[1].textContent.trim();
var totalOrderAmount = reviewTotal.rows[2].cells[1].textContent.trim();
如果要将值存储在数组中,可以编写代码:
var values = [].map.call(reviewTotal.rows, function(row) {
return row.cells[1].textContent.trim();
});
通过使用ES2015的Destructuring Assignment,您还可以提取阵列的元素:
var [wlpTotal, gstAmount, totalOrderAmount] = values;
答案 1 :(得分:0)
首先:索引从行或单元格开始。 Secend:获取标签中的值以使用innerText或innerHTML,代码如下:
**//a[Text()='Electronics']