使用 $(this) 和下面的按钮获取 Table 中最后一行的值
Get Value of Last Row In Table Using $(this) with Button Underneath
我有一个这样的 table,它会在我的页面上弹出一个窗口(这意味着页面上可能会出现很多这样的情况)
<table class="tab_logic">
<thead><th>#</th><th>SKU</th><th>Quantity</th></thead>
<tbody></tbody>
</table>
在我的正下方有一个按钮,可以在单击时动态添加行
<div class="actions><a id="add_row">Add Row</a></div>
以前我在 add_row
的点击功能中使用它
var num = $('.tab_logic tr:last td:first').text();
在我开始打开多个弹出窗口并且我的 DOM 开始与新弹出窗口重叠之前效果很好。
我相信我最好的解决方案是使用 $(this) 而不是依赖 DOM--
var num = $(this).parent().parent().find('td:first').text();
到此为止,但这似乎只返回 table 中的第一个 TR 行。
我如何修改它,以便它始终选择最后一行/TR
和第一列/TD
?[=18= 的父级(或最靠近 dom 的父级,如图所示) ]
如果按钮直接在 table 之后,您可以使用。:
$(this).parent().prev().find('tr:last td:first').text();
如果 table 和 .actions
之间有一个元素(例如下面的 `
标签),您需要下面的代码。
(function($) {
$('#add_row').click(function () {
var $this = $(this),
num = $this.parent()
.siblings('.tab_logic') // .prev() could also depending on the markup.
.find('tr:last td:first').text();
console.log(num);
});
})(jQuery)
table {
border-collapse: collapse;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table class="tab_logic" cellpadding="5px" border="1">
<thead>
<th>#</th>
<th>SKU</th>
<th>Quantity</th>
</thead>
<tbody>
<tr>
<td>1. 1st</td>
<td>1. 2nd</td>
<td>1. 3rd</td>
</tr>
<tr>
<td>2. 1st</td>
<td>2. 2nd</td>
<td>2. 3rd</td>
</tr>
<tr>
<td>3. 1st</td>
<td>3. 2nd</td>
<td>3. 3rd</td>
</tr>
</tbody>
</table>
<br>
<div class="actions"><a id="add_row">Add Row</a></div>
我有一个这样的 table,它会在我的页面上弹出一个窗口(这意味着页面上可能会出现很多这样的情况)
<table class="tab_logic">
<thead><th>#</th><th>SKU</th><th>Quantity</th></thead>
<tbody></tbody>
</table>
在我的正下方有一个按钮,可以在单击时动态添加行
<div class="actions><a id="add_row">Add Row</a></div>
以前我在 add_row
var num = $('.tab_logic tr:last td:first').text();
在我开始打开多个弹出窗口并且我的 DOM 开始与新弹出窗口重叠之前效果很好。
我相信我最好的解决方案是使用 $(this) 而不是依赖 DOM--
var num = $(this).parent().parent().find('td:first').text();
到此为止,但这似乎只返回 table 中的第一个 TR 行。
我如何修改它,以便它始终选择最后一行/TR
和第一列/TD
?[=18= 的父级(或最靠近 dom 的父级,如图所示) ]
如果按钮直接在 table 之后,您可以使用。:
$(this).parent().prev().find('tr:last td:first').text();
如果 table 和 .actions
之间有一个元素(例如下面的 `
标签),您需要下面的代码。
(function($) {
$('#add_row').click(function () {
var $this = $(this),
num = $this.parent()
.siblings('.tab_logic') // .prev() could also depending on the markup.
.find('tr:last td:first').text();
console.log(num);
});
})(jQuery)
table {
border-collapse: collapse;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table class="tab_logic" cellpadding="5px" border="1">
<thead>
<th>#</th>
<th>SKU</th>
<th>Quantity</th>
</thead>
<tbody>
<tr>
<td>1. 1st</td>
<td>1. 2nd</td>
<td>1. 3rd</td>
</tr>
<tr>
<td>2. 1st</td>
<td>2. 2nd</td>
<td>2. 3rd</td>
</tr>
<tr>
<td>3. 1st</td>
<td>3. 2nd</td>
<td>3. 3rd</td>
</tr>
</tbody>
</table>
<br>
<div class="actions"><a id="add_row">Add Row</a></div>