javascript - 编辑 jQuery 数据表字段

标签 javascript jquery datatables

我想为 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();
    }
});

注释:

  1. 我认为您需要 span(而不是 label)。
  2. 我想你想要 .label-danger (不是 .label-error)。

Check it out at http://jsfiddle.net/jhfrench/wrkkbcf1/.

关于javascript - 编辑 jQuery 数据表字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27465239/

相关文章:

javascript - 我做了一个年龄计算器,我需要刷新才能重复使用

c# - 如何根据第一个下拉列表框的选定选项在 aspx 中禁用或启用第二个下拉列表

javascript - 如何在某些特定条件下在父元素列表之间附加 <ul><li> 元素

jquery - 更新 jQuery 插件以使用最新版本的 DataTables

javascript - JQuery 更改数据表的属性

javascript - 数据表:fnRowCallback 内部的自定义函数

javascript - 如何继承祖 parent CSS而不是 parent ?

javascript - JS 脚本没有运行?

javascript - 通过ajax Tapestry 5加载脚本

java - 从 servlet 响应生成动态复选框值