如何获取在jquery数据表中选择单选按钮的列索引

时间:2014-12-04 13:58:59

标签: jquery jquery-ui datatables jquery-datatables

您好我想知道单选按钮在数据表中选择的列索引。

这是我的数据表代码:

$(document).ready(function () {
table=$('#ReportTable').dataTable({
    "bProcessing": true,
    "bPaginate": false,
    "bJQueryUI": true,
    "ajax" :{
        url: 'ajax_call.php',
        type: "POST",
        data: {
            action:'loadEmailData'
        }   
    },
    "columnDefs": [ 
                    {  "aTargets": [0],
                         "mRender": function(data, type, full)
                         {
                             id=full[3];
                             var returnval = "<td><input type='radio' name='chkNew"+id+"'  class='call-checkbox' value="+id+"  id=\"chkNew'"+id+"'\" /></td>";
                               return returnval;
                         }

                     },
                     {  "aTargets": [1],
                         "mRender": function(data, type, full)
                         {
                             id=full[3];
                             var returnval = "<td><input type='radio' name='chkNew"+id+"'   class='call-checkbox'  value="+id+"  id=\"chkSubmit'"+id+"'\" /></td>";
                               return returnval;
                         }

                     },
                     {  "aTargets": [2],
                         "mRender": function(data, type, full)
                         {
                             id=full[3];
                             var returnval = "<td><input type='radio' name='chkNew"+id+"' class='call-checkbox' value="+id+" id=\"chkDeploy'"+id+"'\"/></td>";
                             return returnval;
                         }

                     }

                  ]
   });

  });

这是获取所选列表和所选列的id的函数:这​​里是警告列的索引,如0,1。如果我点击第1列和第3列也是警告为0,1,它应该警告0,2

  var oTable = $('#ReportTable').dataTable();
  var rowcollection =  oTable.$('input[type="radio"]:checked', {"page": "all"});
  rowcollection.each(function(index,elem){
  var checkbox_value = $(elem).val();

     arr[index]=checkbox_value;
     alert(index);
 });

2 个答案:

答案 0 :(得分:0)

那是因为你只是通过检查单选按钮进行迭代。使用:

rowcollection.each(function(index,elem){
var checkbox_value = $(elem).val();
   var globalindex = $(this).closest('tr')find('input[type="radio"]').index(this);
   arr[globalindex]=checkbox_value;
   alert(globalindex);
});

答案 1 :(得分:0)

 var oTable = $('#ReportTable').dataTable();
  $("input:checked", oTable.fnGetNodes()).each(function(){
      var tdColumn = $(this).closest("td");
      rowId= $(this).val();
      columnIndex= tdColumn.index();
      alert(columnIndex);

    });