Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于单选按钮和复选框的数据表排序_Javascript_Jquery_Datatables - Fatal编程技术网

Javascript 基于单选按钮和复选框的数据表排序

Javascript 基于单选按钮和复选框的数据表排序,javascript,jquery,datatables,Javascript,Jquery,Datatables,我使用的是jQueryDataTables,需要对两列进行排序,这两列有单选按钮和复选框。Datatables根据值进行排序,因此我无法根据复选框和单选按钮的选中值和未选中值进行排序 哈佛商学院 我试图得到排序的基础上,复选框和单选按钮以及。请告诉我如何操作。您需要使用自定义排序功能,请参阅和 $.fn.dataTable.ext.order['dom-checkbox']=函数(设置,列) { 返回这个.api()列(col,{order:'index'}).nodes().map(函数(td

我使用的是jQueryDataTables,需要对两列进行排序,这两列有单选按钮和复选框。Datatables根据值进行排序,因此我无法根据复选框和单选按钮的选中值和未选中值进行排序

哈佛商学院


我试图得到排序的基础上,复选框和单选按钮以及。请告诉我如何操作。

您需要使用自定义排序功能,请参阅和

$.fn.dataTable.ext.order['dom-checkbox']=函数(设置,列)
{
返回这个.api()列(col,{order:'index'}).nodes().map(函数(td,i){
返回$('input',td).prop('checked')?'1':'0';
} );
};
$.fn.dataTable.ext.order['dom-text']=函数(设置,列)
{
返回这个.api()列(col,{order:'index'}).nodes().map(函数(td,i){
返回$('input',td).val();
} );
};
var teamMembers=$(“#团队成员数据”).DataTable({
“columnDefs”:[
{
"目标":二,,
“orderDataType”:“dom文本”
}, {
"目标":三,,
“orderDataType”:“dom复选框”
}
],
“订单”:[[3,'asc'],[2,'asc'],[1,'asc'],[0,'asc']]
});

谢谢@Gyrocode。你的回答很有帮助。下面是
dom无线电的一个实现

$.fn.dataTable.ext.order['dom-radio'] = function ( settings, col ) {
    return this.api().column( col, {order:'index'} ).nodes().map( function ( td, i ) {
        return $('input[type=radio]:checked', td).val();
    } );
};
var teamMembers = $('#team-members-data').DataTable({
    "processing": true,
    "order": [[ 3, 'asc' ], [ 2, 'asc' ],[ 1, 'asc' ], [ 0, 'asc' ]]
});
$.fn.dataTable.ext.order['dom-radio'] = function ( settings, col ) {
    return this.api().column( col, {order:'index'} ).nodes().map( function ( td, i ) {
        return $('input[type=radio]:checked', td).val();
    } );
};
$.fn.dataTable.ext.order['dom-radio'] = function ( settings, col ) {
    return this.api().column( col, {order:'index'} ).nodes().map( function ( td, i ) {
        return $('input', td)[1].checked ? '1' : '0';
    } );
};