在javascript中迭代html数组不起作用

在javascript中迭代html数组不起作用,javascript,html,Javascript,Html,我试着重复这个,但是没有。 下面的函数 函数orderpackage(){ 如何遍历每个tr以获得价格、数量和行总数?使用普通JS,您可以使用它获取表中的所有行 然后您需要迭代它们,可能会跳过第一个(标题)。对于每一个,访问包含所需字段的子项(单元格),并使用它们创建一个新数组,[price,quantity,total],然后将该数组推送到包含所有表数据的另一个数组中 这里有一种使用和的方法: consttabledata=Array.from(document.getElementById

我试着重复这个,但是没有。 下面的函数 函数orderpackage(){


如何遍历每个tr以获得价格、数量和行总数?

使用普通JS,您可以使用它获取表中的所有行

然后您需要迭代它们,可能会跳过第一个(标题)。对于每一个,访问包含所需字段的子项(单元格),并使用它们创建一个新数组,
[price,quantity,total]
,然后将该数组推送到包含所有表数据的另一个数组中

这里有一种使用和的方法:

consttabledata=Array.from(document.getElementById('table').rows).切片(1).映射(row=>{
const cells=row.children;
返回[cells[0]。innerText,单元格[1]。innerText,单元格[2]。innerText];
});
console.log(JSON.stringify(tableData));
表格{
边界塌陷:塌陷;
字体系列:monospace;
文本对齐:右对齐;
}
表,th,td{
边框:3倍纯黑;
}
th,td{
填充物:5px10px;
}

价格数量总计
155
10220
8432

为什么要将jQuery选择器与DOM方法混合使用?因为您已经在使用jQuery…
$。每个(产品线、函数(索引、项目){//对项目和/或索引做点什么})
那么迭代将在
for()
循环中进行,所以如果您添加类似
控制台.log(产品线[i])
我相信您会看到它记录单个元素。这就是您当前尝试不记录每个项目的原因,但正如上面所建议的,您最好使用
jQuery
,因为您已经加载/使用了库。@NewToJS我这样做了,只是没有包含它。问题是,它没有输出任何内容。所以我认为它可能是关于HTMLCollection,您是否可以给出一个到目前为止您尝试过的表和
javascript
的呈现输出的示例?请解释一下您的预期输出/目标。谢谢。
var product_line = $('#carttable')[0].getElementsByTagName('tr');

for (var i = 1; i < product_line.length; i++) {
}

console.log(product_line)
<tr class="table_row">
  <td class="column-1">
    <div class="how-itemcart1">
      <img src=${Items.imageurl} alt="IMG">
    </div>
  </td>
  <td class="column-2">${Items.name}</td>
  <td class="column-3">$ ${Items.price}</td>
  <td class="column-4">
    <div class="wrap-num-product flex-w m-l-auto m-r-0">
      <div class="btn-num-product-down cl8 hov-btn3 trans-04 flex-c-m qty-change" id="qty-change">
        <i class="fs-16 zmdi zmdi-minus"></i>
      </div>

      <input class="mtext-104 cl3 txt-center num-product" type="number" name="num-product1" value=${Items.user_quantity}>

      <div class="btn-num-product-up cl8 hov-btn3 trans-04 flex-c-m qty-change" id="qty-change">
        <i class="fs-16 zmdi zmdi-plus"></i>
      </div>
    </div>
  </td>
  <td class="column-5">${line_total_sum}</td>
</tr>
var product_line = $('#carttable')[0].getElementsByTagName('tr')[4];