循环遍历具有数据属性的表行

时间:2014-10-23 03:04:45

标签: jquery json ajax html-table

我有一张表格,显示产品代码,客户可以输入他们想要的数量。

    <tr data-code="TEST1" data-description="Test Product (EACH)" data-whqc="" >
      <td>
        TEST1
      </td>
      <td>
        Test Product (EACH)
      </td>
      <td>
        4
      </td>
      <td style="text-align: center">
        <input name="qty" type="text" class="qty" maxlength="5">
      </td>
    </tr>

表格中有很多行,我想将这些数据发送到AJAX页面,以便我可以将这些产品添加到购物车中。

如何循环遍历具有data-*元素的表的所有行,将它们添加到数组中以及数量输入?

1 个答案:

答案 0 :(得分:2)

var array = [];
    $("#tbl").find("tr[data-code]").each(function () {
        var qty = parseFloat($(this).find(".qty").val()) || 0;
        if (qty > 0) {
            array[array.length] = {
                Code: $(this).attr("data-code"),
                Description: $(this).attr("data-description"),
                Whqc: $(this).attr("data-whqc"),
                Qty: qty
            };
        }
    });

这里的jsFiddle演示:http://jsfiddle.net/7kykjg2m/1/

说明:

  1. 创建空数组
  2. 迭代所有具有data-code属性
  3. 的TR元素
  4. 将数量解析为浮点数(我使用浮点数,因为有时数量可以是小数,如升油),但如果数量为空/空或{{{},则使用|| 0qty设为0 1}}。
  5. 如果数量大于0,请使用JSON
  6. 将项目作为对象添加到数组中
  7. 完成后,使用NaN或其他任何方式将数组数据传递到服务器/服务,但您没有提供有关这方面的详细信息,因此没有显示此代码。