如何使用JQuery迭代表行并访问一些单元格值?

Ser*_*Amo 49 javascript jquery

<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>
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用下一个代码来获取每个项目的价值和数量.

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

它不起作用.谁能帮我?

Bri*_*her 89

$("tr.item").each(function() {
  $this = $(this);
  var value = $this.find("span.value").html();
  var quantity = $this.find("input.quantity").val();
});
Run Code Online (Sandbox Code Playgroud)

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

Sco*_*den 16

做这个:

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