2016-10-05 125 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); 
     } 
    }