您JSFiddle使用的是dataTable
這是初始化DataTable的舊方法。 DataTable
更加強大:這是你如何能做到這一點使用數組:
$(document).ready(function() {
example = $("#tabledata").DataTable({
"dom": 'Blfrtip',
"columns":[
{
"title":"No"
},{
"title":"Status"
},{
"title":"Speed"
},{
"title":"Reference",
"sortable": false
}
],
"bSort": true,
"scrollY": 100,
"scrollX": true,
"lengthMenu": [
[10, 25, 50, -1],
['10 rows', '25 rows', '50 rows', 'Show all']
],
"buttons": [
'excelHtml5'
]
});
for(var i = 0; i < 400; i++){
var speed = (1000 - (i * 2));
example.row.add(["abc", "def", speed, "sd"])
}
example.draw();
$('#tabledata').on('click', 'tbody tr', function() {
var rowData = example.row(this).data();
console.log(rowData);
$("#myModal").modal("show");
$("#txt_status").val(rowData[1]);
$("#txt_speed").val(rowData[2]);
});
});
雖然我的偏好是使用對象:
$(document).ready(function() {
var example = $("#tabledata").DataTable({
"dom": 'Blfrtip',
"columns":[
{
"title":"No",
"data": "no"
},{
"title":"Status",
"data": "status"
},{
"title":"Speed",
"data": "speed"
},{
"title":"Reference",
"sortable": false,
"data": "reference"
}
],
"bSort": true,
"scrollY": 100,
"scrollX": true,
"lengthMenu": [
[10, 25, 50, -1],
['10 rows', '25 rows', '50 rows', 'Show all']
],
"buttons": [
'excelHtml5'
]
});
for(var i = 0; i < 400; i++){
var speed = (1000 - (i * 2));
example.row.add({
"no": "abc",
"status": "def",
"speed": speed,
"reference": "sd"
})
}
example.draw();
$('#tabledata').on('click', 'tbody tr', function() {
var rowData = example.row(this).data();
console.log(rowData);
$("#myModal").modal("show");
$("#txt_status").val(rowData.status);
$("#txt_speed").val(rowData.speed);
});
});
你有數據表,所以你還不如讓它儘可能地爲你工作。
所以,如果你想連接細胞內的數據,可以使用渲染這樣的:
$(document).ready(function() {
var example = $("#tabledata").DataTable({
"dom": 'Blfrtip',
"columns":[
{
"title":"No",
"data": "no"
},{
"title":"Status",
"data": "status",
"visible": false
},{
"title":"Speed",
"data": "speed",
"render": function(data, type, row){
return row.status + data;
}
},{
"title":"Reference",
"sortable": false,
"data": "reference"
}
],
"bSort": true,
"scrollY": 100,
"scrollX": true,
"lengthMenu": [
[10, 25, 50, -1],
['10 rows', '25 rows', '50 rows', 'Show all']
],
"buttons": [
'excelHtml5'
]
});
for(var i = 0; i < 400; i++){
var speed = (1000 - (i * 2));
example.row.add({
"no": "abc",
"status": "def",
"speed": speed,
"reference": "sd"
})
}
example.draw();
$('#tabledata').on('click', 'tbody tr', function() {
var rowData = example.row(this).data();
$("#myModal").modal("show");
$("#txt_status").val(rowData.status);
$("#txt_speed").val(rowData.speed);
});
});
這樣,你仍然有rowData
的數據中的模式顯示。
希望有所幫助。工作JSFiddle here。
您能否提供您的數據樣本?你可以使用DataTable爲你隱藏你的數據,然後你正在尋找一種以模式顯示數據的更簡單的方法。 – annoyingmouse
示例數據已經在屏幕截圖@annoyingmouse –