#javascript #jquery #object #datatables
#javascript #jquery #объект #таблицы данных
Вопрос:
В случае, если типом моего вывода с данными является объект, я бы хотел, чтобы вся ячейка превратилась в ссылку.
До сих пор мне удавалось превратить данные внутри ячейки в ссылку, но я не смог превратить всю ячейку в ссылку.
"render": function (data, type, row, meta) {
var link = "{{output.content}}";
var type = typeof data;
if(type == "object"){
if(Array.isArray(data)){
data.forEach(function(obj) {
if (obj.hasOwnProperty("category")) {
data.sort((a,b) => Number(a.category.id) - Number(b.category.id));
}
})
return (data.map(obj => obj.category ? `<div style="border-color:${obj.category.color}" class="circle"></div> ${obj.name}` : ` <a href="` content `">This is my link</a>${obj.name}`)).join('<br>');
}else {
if(data){
return data.name;
} else {
return '';
}
}
} else {
if(String(data).indexOf('#') == 0) {
return '<div style="border-color:' data '" class="circle"></div>';
} else {
return data;
}
}
},
"targets": "_all"
Ответ №1:
Try this. Just replace the button with a link.
$(document).ready(function() {
var table = $('#example').DataTable( {
"ajax": "data/arrays.txt",
"columnDefs": [ {
"targets": -1,
"data": null,
"defaultContent": "<button>Click!</button>"
} ]
} );
$('#example tbody').on( 'click', 'button', function () {
var data = table.row( $(this).parents('tr') ).data();
alert( data[0] "'s salary is: " data[ 5 ] );
} );
} );
HTML
=============
<table id="example" class="display" style="width:100%">
<thead>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Extn.</th>
<th>Start date</th>
<th>Salary</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Extn.</th>
<th>Start date</th>
<th>Salary</th>
</tr>
</tfoot>
</table>
Комментарии:
1. Если вы хотите преобразовать всю ячейку в ссылку, добавьте пользовательское событие щелчка, найдите дочерний элемент и запустите щелчок