Javascript 编辑jQuery数据表字段

Javascript 编辑jQuery数据表字段,javascript,jquery,jquery-datatables,Javascript,Jquery,Jquery Datatables,我想为JQuery数据表中字段的一个值输出一个引导标签。此字段可能的值可以是“0”或“1”,并根据结果决定要在dataTable中输出的引导标签。不幸的是,我不知道如何才能在这个案例中使用if语句 我的JQuery: $(document).ready(function() { $('#accountOverview').dataTable( { "ajax": { "url": "/database/accounts.php",

我想为JQuery数据表中字段的一个值输出一个引导标签。此字段可能的值可以是“0”或“1”,并根据结果决定要在dataTable中输出的引导标签。不幸的是,我不知道如何才能在这个案例中使用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
    });
});
我需要对“enabled”字段的结果使用如下内容:

if(enabled==1)在线
其他离线
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>

电子邮件
站台
硬币
利润持续24小时
玩家名称
贸易卡片
交易桩价值
地位
标签需要位于字段“status”=每行的最后一个。

在dataTable的“draw”(在AJAX加载数据后发生)之后,您可以查找每行的最后一个
td
,并使用它注入所需的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();
    }
});
var apply\u label=function(){
$('#accountOverview')。查找('td:last child')。不(':has(.label'))。每个(函数(){
if(this.innerHTML==“1”){
$(this.wrapInner(“”);
}
否则{
$(this.wrapInner(“”);
}
});
};
$(“#accountOverview”)。数据表({
“ajax”:{
“url”:“/数据库/accounts.php”,
“数据”:{“操作”:“选择帐户”},
“dataSrc”:”
},
“栏目”:[
{“数据”:“电子邮件”},
{“数据”:“平台”},
{“数据”:“硬币”},
{“数据”:“利润日”},
{“数据”:“playerName”},
{“数据”:“tradepileCards”},
{“数据”:“tradepileValue”},
{“数据”:“已启用”}
],
“自动宽度”:false,
“drawCallback”:函数(设置){
应用_标签();
}
});
注:

  • 我想你想要的是
    span
    (而不是
    label
  • 我想您需要(不是
    。标签错误

  • 您希望标签放在哪里(以及标签是什么输入元素)?注射标签之前,
    是什么样子的?我已经编辑了我的问题并添加了信息。该表由上面的jQuery部分创建。最后(也就是说,当该字段的SQL查询结果为“1”时,该字段的状态应该是这样的:Online else:Offline感谢您的想法!我尝试过这个方法,但对我来说不起作用。我想这是因为我通过Ajax请求加载了所有数据,而它在完全创建datatable之前寻找tds或其他什么?它什么也没做g、 您正在使用的URL是公共的吗?我可以看一下吗?我需要导入AJAX的页面的链接(由于跨域安全限制,我不能只将您的URL插入JSFIDLE)。更新了使用
    drawCallback
    ()。针对您的原型测试了此解决方案,并且效果良好。非常感谢您完成此项工作,很抱歉这么晚才接受答案。
    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();
        }
    });