Jquery 过滤Html数据表和Django中的Json数据

Jquery 过滤Html数据表和Django中的Json数据,jquery,ajax,datatables,django-rest-framework,Jquery,Ajax,Datatables,Django Rest Framework,我在Django项目的页面中添加了一个Datatable。这些表应该显示从Django Rest Framework API端点检索到的一些数据 以下是检索到的数据示例的外观: { "item": "Someitem", "Price": 120, "Status": "Free" }, { "item": "SecondItem, "Price": 90, "Status": "Taken" }, 我想过滤这些记录,以便表中只显示状态设置为Fr

我在Django项目的页面中添加了一个Datatable。这些表应该显示从Django Rest Framework API端点检索到的一些数据

以下是检索到的数据示例的外观:

{
    "item": "Someitem",
    "Price": 120,
    "Status": "Free"
},
{
    "item": "SecondItem,
    "Price": 90,
    "Status": "Taken"
},
我想过滤这些记录,以便表中只显示状态设置为Free的记录,但我真的不知道如何从Jquery中做到这一点

下面是我用来加载表的代码:

$(document).ready(function() {

    var table = $('#mydb').DataTable({
        "serverSide": true,             
        "ajax": "/myapi/?format=datatables",
        "columns": [

            {data: "item",
            {data: "Price"},

        ]
    });
    setInterval( function () {
    table.ajax.reload();
}, 10000 );
});

我试图在Ajax调用中添加一个if语句来检查data.Pair,但它给了我一个未定义的错误。还有别的办法吗?非常感谢您的建议

您可以这样做:

寻找方法。 代码:

var table=$'mydb'.DataTable{ 服务器端:是的, ajax:/myapi/?format=datatables, 栏目:[ {数据:项目, {数据:价格}, {数据:状态} ] })

然后像这样过滤:

var filteredData = table
    .column( 2 )
    .data()
    .filter( function ( value, index ) {
        return value == "Free";
    } );
您可以将ajax添加到api中,并将过滤后的响应附加到datatable构造函数中。但是,由于您使用的是服务器端,我假设您是从服务器端分页的,因此您需要更改以下代码才能使用它 代码:

$.ajax{ url:/myapi/?format=datatables, 键入:“GET”, 数据类型:“JSON” } .doneresponse=>{ ifresponse!=未定义{ 让data=response.data, 过滤的_数据=[]; $.eachdata,函数索引,值{ ifvalue.Status==Free{ 过滤数据推送{ item:Someitem, 价格:120 }; } }//结束每一个 //填表 var table=$'mydb'.DataTable{ 服务器端:是的, 数据:过滤的数据, 栏目:[ {数据:项目, {数据:价格} ] }; } }

编辑: 在做了一次JSFIDLE之后,我意识到我错过了第一个选项的remove方法,所以这里是修复方法:

 var filteredData =  table
    .rows()
    .indexes()
    .filter( function ( index, value ) {
    console.log(table.row(value).data().Status);
       return table.row(value).data().Status == "Taken"; 
    } );
table.rows( filteredData )
.remove()
.draw();


希望有帮助=

如果您的服务器端API提供了一种过滤条目的方法,这不是一个更好的主意吗?否则,肯定会对您有所帮助。嘿!谢谢您的回答!只有一件事:代码var filterdata的第二段……jquery函数应该放在哪一部分上?您可以在同一个let子句中用数据对其进行赋值。好的!尝试了这个,但是表格显示为空白。试图理解原因。@Jack022我对答案进行了编辑,还添加了一个jsfiddle,希望能有所帮助