我想为 JQuery 数据表中字段的一个值输出引导标签。该字段的可能值可以是“0”或“1”,并且根据结果我想决定要在数据表中输出哪个引导标签。不幸的是,我不知道如何针对这种情况执行此 if 语句。
我的 JQuery:
$(document).ready(function() {
$('#accountOverview').dataTable( {
"ajax": {
"url": "/database/accounts.php",
"data": {"action": "selectAccounts"},
"dataSrc": ""
},
"columns": [
{ "data": "email" },
{ "data": "platform" },
{ "data": "coins" },
{ "data": "profitDay" },
{ "data": "playerName" },
{ "data": "tradepileCards" },
{ "data": "tradepileValue" },
{ "data": "enabled" }
],
"autoWidth": false
});
});
我需要对“启用”字段的结果使用类似的内容:
if(enabled==1) <label class="label label-success">Online</label>
else <label class="label label-error">Offline</label>
HTML 表格:
<table id="accountOverview" class="table datatable">
<thead>
<tr>
<th>E-Mail</th>
<th>Platform</th>
<th>Coins</th>
<th>Profit last 24h</th>
<th>Playername</th>
<th>Tradepile Cards</th>
<th>Tradepile Value</th>
<th>Status</th>
</tr>
</thead>
<tbody id="accountList">
<!-- List all accounts -->
</tbody>
</table>
标签需要位于“status”字段中 = 每行的最后一个。
最佳答案
在 dataTable 的“绘制”(AJAX 加载数据后发生)之后,您可以查找每行的最后一个 td
并使用 wrapInner()
注入(inject)你想要的 HTML。因此,根据您的情况,请尝试:
var apply_label=function(){
$('#accountOverview').find('td:last-child').not(':has(.label)').each(function(){
if( this.innerHTML==="1"){
$(this).wrapInner('<span class="label label-success"></span>');
}
else {
$(this).wrapInner('<span class="label label-danger"></span>');
}
});
};
$('#accountOverview').dataTable( {
"ajax": {
"url": "/database/accounts.php",
"data": {"action": "selectAccounts"},
"dataSrc": ""
},
"columns": [
{ "data": "email" },
{ "data": "platform" },
{ "data": "coins" },
{ "data": "profitDay" },
{ "data": "playerName" },
{ "data": "tradepileCards" },
{ "data": "tradepileValue" },
{ "data": "enabled" }
],
"autoWidth": false,
"drawCallback": function( settings ) {
apply_label();
}
});
注释:
- 我认为您需要
span
(而不是label
)。 - 我想你想要
.label-danger
(不是.label-error
)。
关于javascript - 编辑 jQuery 数据表字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27465239/