我使用jQuery Datatable
列出记录,并添加一个编辑按钮( Action
)来编辑模式对话框中的记录。如果我选择一行,我可以得到行的id值,并在模式对话框中打开相关记录。但是,如果我直接单击Edit
按钮,我无法获得相关记录(在同一行上)的ID值,因为在单击Edit
按钮时没有首先选中它。我想要做的是:我想要获取我单击Edit按钮所在行的ID值。有可能吗?如果不是,当我单击Edit
按钮时,是否可以以编程方式选择悬停的行?(如果前面的场景是可能的,我更喜欢它)。有什么想法吗?
function openModal() {
var table = $('#dtbListAccount').DataTable();
var oRow = $('this').parents('tr')[0];
var oData = table.fnGetData(oRow);
//code omitted for brevity
};
发布于 2016-09-08 18:12:57
您可以使用此代码来实现这一点。
var table;
$(document).ready( function () {
table = $('#example').DataTable();
} );
$('body').on('click', '#btnEdit', function(){
//to get currently clicked row object
var row = $(this).parents('tr')[0];
//for row data
console.log( table.row( row ).data() );
});
它将以字符串数组的形式返回行数据。
使用浏览器控制台查看结果。
发布于 2016-09-09 02:31:09
这是完整的源代码。希望这能有所帮助:)
//when button (edit button here) is clicked.... Note: no need id for buttons too, just use <button> tag
$('table button').click(function() {
var tr = $(this).closest('tr');
var id = tr.children('td:eq(0)').text(); //get the text from first col of current row
console.log(id); //you'll get the actual ids here
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<table>
<tr>
<th>Id</th>
<th>Name</th>
<th>Surname</th>
<th>Action</th>
</tr>
<tr>
<td>1</td>
<td>Hans</td>
<td>Jahnsen</td>
<td>
<button>Edit</button>
</td>
</tr>
<tr>
<td>2</td>
<td>Robert</td>
<td>Boylstat</td>
<td>
<button>Edit</button>
</td>
</tr>
<tr>
<td>3</td>
<td>Jim</td>
<td>Alexi</td>
<td>
<button>Edit</button>
</td>
</tr>
</table>
发布于 2016-09-08 17:49:25
也将row- id分配给编辑按钮,为编辑按钮编写点击事件,该事件基于被点击的按钮的id来触发编辑功能/视图。
您可以在呈现按钮本身时将行id分配给按钮,或者编写一个小函数在页面加载时执行相同的操作。
https://stackoverflow.com/questions/39397202
复制