【问题标题】:get a column click in dataTables plugin instead of row在 dataTables 插件中单击列而不是行
【发布时间】:2012-06-28 19:26:37
【问题描述】:

我有以下代码非常适合点击行,但我希望第一列和最后一列是可点击的,并且我希望能够知道点击了哪一列。我有以下代码

$(document).ready(function() {
    oTable = $('#mytable').dataTable();
    var fa = 0;
    $('#submit tbody td ').click(function() {
    var gCard = $('#mytable tbody').delegate("tr", "click", rowClick);


    });
    function rowClick() {
        fa = this;
        var id  = $("td:eq(1)", this).text();
        cardNumber = $.trim(id);    
        $.ajax({
            url : 'myurltopostto',
            type : 'POST',
            data : {
                id  :   id

            },
            success : function(data) {
                oTable.fnDraw(); //wanted to update here
            },
            error : function() {
                console.log('error');
            }
        });
    }

});

这里的代码是行点击

var gCard = $('#mytable tbody').delegate("tr", "click", rowClick);

我可以为单击单元格做什么并获取信息。

使用 jquery 插件数据表 谢谢

【问题讨论】:

    标签: jquery-ui jquery jquery-plugins datatables


    【解决方案1】:

    当你这样做$('#submit tbody td ').click(function() ...时,你将点击事件绑定到td
    因此,要获取第一列和最后一列,请单击以下内容:

    $('td:first, td:last', '#submit tbody tr').on('click', function() {
        // do what you want
    });
    

    demo1

    更新 1: 获取最后两列:

    jQuery('#mytable tr').each(function() {
        jQuery('td', this).slice(-2).on('click', function() {
            // do what you want
        });
    });
    

    demo2

    更新2:点击最后两列时获取每列数据

    jQuery('#mytable tr').each(function() {
        jQuery('td', this).slice(-2).on('click', function() {
            // do what you want
            var $columns = jQuery(this).siblings('td').andSelf();
            jQuery.each($columns, function(i, item) {
                alert(jQuery(item).html());
            });
        });
    });
    

    demo3

    【讨论】:

    • 你能澄清你的问题吗?
    • 而不是第一列和最后一列,我只想点击最后两列
    • 这可行,但只有一个问题?我将如何获得其他单元格的值???它只是给了我最后两个单元格的值。我希望能够只单击最后一个单元格,但我需要所有单元格的值。只是无法点击它们。
    • 类似jsfiddle.net/hua8Z/3 但它不起作用...试图获取第一个单元格的值
    【解决方案2】:

    只需指定列号而不是第一个、最后一个等。下面的示例显示第 12 列。零是第一个。这样更容易。

    td:eq(11)
    

    【讨论】:

      【解决方案3】:
      $(document).ready(function() {
          var table = $('#tableID').DataTable();
      
          $('#tableID').on('click', 'tr', function () {
              var data = table.row( this ).data();
              alert( 'You clicked on '+data[0]+'\'s row' );
          } );
      } );
      

      更多信息请参考link

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多