ran*_*tan 1 html javascript jquery html-table
我在我的表中从tr和td获取id时遇到问题.
假设我有一个这样的表格:
<table class="table table-hover" id="table_tingkat_jual">
<thead>
<tr>
<th>Tingkat Penjualan</th>
<th>SA</th>
<th>Kode SA</th>
<th>Kuantiti Terendah (lusin)</th>
<th>Kuantiti Tertinggi (lusin)</th>
</tr>
</thead>
<tbody>
<tr id='0'>
<td>Diatas Rata-Rata</td>
<td id='1'>1 </td>
<td>AG</td>
<td>3870</td>
<td>5782</td>
</tr>
<tr id='0'>
<td>Diatas Rata-Rata</td>
<td id='3'>3 </td>
<td>CA</td>
<td>1080</td>
<td>3780</td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
我希望从特定表(table_tingkat_jual)中单击的每个tr获取TR和id FROM td的id.
这是我在jQuery中的语法:
$('#table_tingkat_jual tr').click(function(){
this.stopPropagation();
});
$('#table_tingkat_jual tr').click(function() {
var trid = $(this).closest('tr').attr('id');
alert("TR ID " + trid);
var tdid = $(this).closest('td').attr('id');
alert("TD ID " + tdid);
});
Run Code Online (Sandbox Code Playgroud)
但当我点击该表中的行时,没有任何反应.我想要的是提醒我身份证.(参见警报功能).
怎么了?
事实证明问题是表是通过ajax动态加载的,因此需要委托事件(除了其他修复):
$(document).on('click', '#table_tingkat_jual tr', function (e) {
e.stopPropagation();
var $this = $(this);
var trid = $this.closest('tr').data('id');
alert("TR ID " + trid);
var tdid = $this.find('td[data-id]').data('id');
alert("TD ID " + tdid);
});
Run Code Online (Sandbox Code Playgroud)
有几个问题,其中最重要的是在HTML中使用重复的ID(这是无效的).
您也不需要单独的,相同的选择器来处理stopPropogation(假设您实际上需要stopPropogation(例如,以避免父对象中的点击).
看来您还想深入了解TD值,请尝试以下方法:
$('#table_tingkat_jual tr').click(function(e) {
e.stopPropagation();
var $this = $(this);
var trid = $this.closest('tr').data('id');
alert("TR ID " + trid);
var tdid = $this.find('td[data-id]').data('id');
alert("TD ID " + tdid);
});
Run Code Online (Sandbox Code Playgroud)
data('id')是一个捷径attr('data-id').
请注意我已将HTML更改为使用data-id属性而不是id=允许重复值.
<table class="table table-hover" id="table_tingkat_jual">
<thead>
<tr>
<th>Tingkat Penjualan</th>
<th>SA</th>
<th>Kode SA</th>
<th>Kuantiti Terendah (lusin)</th>
<th>Kuantiti Tertinggi (lusin)</th>
</tr>
</thead>
<tbody>
<tr data-id='0'>
<td>Diatas Rata-Rata</td>
<td data-id='1'>1</td>
<td>AG</td>
<td>3870</td>
<td>5782</td>
</tr>
<tr data-id='0'>
<td>Diatas Rata-Rata</td>
<td data-id='3'>3</td>
<td>CA</td>
<td>1080</td>
<td>3780</td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
如果你真的必须使用重复的ID(我强烈建议你修复),请改用以下代码:
$('#table_tingkat_jual tr').click(function(e) {
e.stopPropagation();
var $this = $(this);
var trid = $this.closest('tr').attr('id');
alert("TR ID " + trid);
var tdid = $this.find('td[id]').attr('id');
alert("TD ID " + tdid);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34368 次 |
| 最近记录: |