【问题标题】:How to iterate a table rows with JQuery and access some cell values?如何使用 JQuery 迭代表行并访问一些单元格值?
【发布时间】:2017-05-05 00:33:23
【问题描述】:
<table class="checkout itemsOverview">
    <tr class="item">
        <td>GR-10 Senderos</td>
        <td><span class="value">15.00</span> €</td>
        <td><input type="text" value="1" maxlength="2" class="quantity" /></td>
    </tr>
    <tr class="item">
        <td>GR-10 Senderos<br/>GR-66 Camino de la Hermandad<br/>GR 88 Senderos del   Jarama<br/>Camino del Cid</td>
        <td><span class="value">45.00</span> €</td>
        <td><input type="text" class="quantity"   value="1" maxlength="2"/></td>
    </tr>
</table>

我正在尝试使用下一个代码来获取每件商品的价值和数量。

$("tr.item").each(function(i, tr) {
    var value = $(tr + " span.value").html();
    var quantity = $(tr + " input.quantity").val();
});

它不工作。谁能帮帮我?

【问题讨论】:

  • 什么特别不适合你?

标签: javascript jquery


【解决方案1】:
$("tr.item").each(function() {
  $this = $(this);
  var value = $this.find("span.value").html();
  var quantity = $this.find("input.quantity").val();
});

【讨论】:

  • 为了不迭代页面中的所有表,最好将 $("tr.item").each(...) 替换为 $('#myTableId > tbody > tr.item') .each(...)
  • $this = $(this) 是做什么的?
  • @qed 将“this”的当前上下文值存储到名为 $this 的变量中。如果您要在数量分配之后嵌套另一个迭代调用,则调用“$(this)”将不再是相同的结果。我相信 Brian 只是使用标准的最佳实践来避免这种混淆,但他可以很容易地将其命名为“curRow”等。
【解决方案2】:

这样做:

$("tr.item").each(function(i, tr) {
    var value = $("span.value", tr).text();
    var quantity = $("input.quantity", tr).val();
});

【讨论】:

    【解决方案3】:

    试试这个

    var value = iterate('tr.item span.value');
    var quantity = iterate('tr.item span.quantity');
    
    function iterate(selector)
    {
      var result = '';
      if ($(selector))
      {
        $(selector).each(function ()
        {
          if (result == '')
          {
            result = $(this).html();
          }
          else
          {
            result = result + "," + $(this).html();
          }
        });
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-13
      • 2020-07-26
      • 2018-06-18
      • 1970-01-01
      相关资源
      最近更新 更多