2016-10-05 124 views
0

检索值我有以下HTML表格:遍历表tr和从第二个TD

<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中不强壮。

回答

3

你有3行,每行只有2个单元格。 3和5的索引是undefinedundefined不具有.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; 
+0

感谢您的帮助,@CodeRatchet欢迎您可以确认它的工作:) –

+0

! – undefined

0

首先:索引开始0行或单元格。 SECEND:在使用的innerText或innerHTML的,该代码标签获取值如下:

var reviewTotal = document.getElementById('review-total'); 
    for (var i = 0; i < reviewTotal.rows.length; i++) 
    { 
     if (reviewTotal.rows[i].cells.length>1) 
     { 
      wlpTotal = (reviewTotal.rows[i].cells[1].innerText); 
     } 
    }