在 jQuery 数组中获取 Table 行 ID 和值
Getting Table row ID and Values in jQuery Array
在我的网络应用程序中,我创建了一个 table 来向 table 显示一些项目。在 table 中,有九列,最后一列有一个 editable 单元格。
第一列包含与部件号记录相关的 Part_Id,该字段已隐藏。所以我想获取所有不包含“新订单数量”列中的空值的 Id 和数据,并将所有值传递给控制器。
所以在 Create Order
按钮单击事件中,我尝试调用此函数以获取 Id 和订单数量并将它们添加到数组中。但只有第一条记录进入数组。
有没有办法只获取包含 New Order Qty
中值的记录到数组以将其传递给控制器?
function createOrder() {
var Orders = new Array();
$("#tblParts").each(function() {
var order = {};
var partId = this.getElementsByTagName("td")[0];
var pID = partId.innerText;
var cellOrder = this.getElementsByTagName("td")[8];
var cellOrderId = cellOrder.innerText;
order.Id = pID;
order.OrderQty = cellOrderId;
Orders.push(order);
});
}
- ID 必须是唯一的
- 你有jQuery,使用它
const Orders = $("#tableId tbody tr").filter(function() {
const cells = $(this).find("td");
return cells.eq(8).text().trim() != ""
}).map(function() {
const cells = $(this).find("td");
return {
[cells.eq(0).text().trim()]: +cells.eq(8).text()
}
}).get()
console.log(Orders)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="tableId">
<thead>
<tr>
<th>ID</th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th>QTY</th>
</tr>
</thead>
<tbody>
<tr>
<td>ID 1</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>32</td>
</tr>
<tr>
<td>ID 2</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>ID 3</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>23</td>
</tr>
</tbody>
</table>
在我的网络应用程序中,我创建了一个 table 来向 table 显示一些项目。在 table 中,有九列,最后一列有一个 editable 单元格。
第一列包含与部件号记录相关的 Part_Id,该字段已隐藏。所以我想获取所有不包含“新订单数量”列中的空值的 Id 和数据,并将所有值传递给控制器。
所以在 Create Order
按钮单击事件中,我尝试调用此函数以获取 Id 和订单数量并将它们添加到数组中。但只有第一条记录进入数组。
有没有办法只获取包含 New Order Qty
中值的记录到数组以将其传递给控制器?
function createOrder() {
var Orders = new Array();
$("#tblParts").each(function() {
var order = {};
var partId = this.getElementsByTagName("td")[0];
var pID = partId.innerText;
var cellOrder = this.getElementsByTagName("td")[8];
var cellOrderId = cellOrder.innerText;
order.Id = pID;
order.OrderQty = cellOrderId;
Orders.push(order);
});
}
- ID 必须是唯一的
- 你有jQuery,使用它
const Orders = $("#tableId tbody tr").filter(function() {
const cells = $(this).find("td");
return cells.eq(8).text().trim() != ""
}).map(function() {
const cells = $(this).find("td");
return {
[cells.eq(0).text().trim()]: +cells.eq(8).text()
}
}).get()
console.log(Orders)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="tableId">
<thead>
<tr>
<th>ID</th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th>QTY</th>
</tr>
</thead>
<tbody>
<tr>
<td>ID 1</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>32</td>
</tr>
<tr>
<td>ID 2</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>ID 3</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>23</td>
</tr>
</tbody>
</table>