如何使用jQuery从表行中选择数据

时间:2016-07-05 18:13:12

标签: jquery

我正在尝试连续提取数据(实际上只需要一列),同时按下行中的输入按钮。我用过:

$(document).ready(function() {
  var ttl_emp = $('#no_emp').text();
  var ttl_sal = $('#tl_sal').text();

  $('#wtable').on('click', 'input', function() {
    var rdata = $(this).parents('tr td:nth-child(8)').text();

    alert(rdata);
    ttl_sal = ttl_sal - c_emp_netSal;
    $(this).parents('tr').remove();
    $('#no_emp').text(ttl_emp - 1);
    ttl_emp = ttl_emp - 1;

    $('#tl_sal').text(ttl_sal);
  });
});

但失败了,控制台提到了未定义的数据。 wtable是表的id。

1 个答案:

答案 0 :(得分:0)

作为您的问题,您可以使用此代码使用jquery从表中的选定行获取数据。这是示例代码并尝试理解此逻辑,之后您可以在代码中实现。我希望它对你有所帮助。

<强>描述 我们使用.find()函数来获得表中的正确控制。因此,如果input类型为文字,请使用.find('input[type="text"]')

eq()是使用索引编号查找的函数,因此如果您的列是表中的第一个位置,那么您应该使用eq(0)来获取表中第一列的值。此索引号条件适用于所有兄弟列。

在此代码中,我们使用.val()来获取textbox的值。如果您想从标签获取文字,则应使用.text()

逻辑

$(document).ready(function(){
  $('#tableid tr').each(function(){
        var name = $(this).closest('td').find('input[type="text"]').eq(0).val();
  });
});

您的逻辑代码

$(document).ready(function() {
var ttl_emp = $('#no_emp').text();
var ttl_sal = $('#tl_sal').text();

$('#wtable tr').on('click', function() {
var rdata = $(this).find('td').eq(8).val(); // for label use val() otherwise for textbox use text() for get value

alert(rdata);
ttl_sal = ttl_sal - c_emp_netSal;
$('#no_emp').text(ttl_emp - 1);
ttl_emp = ttl_emp - 1;

$('#tl_sal').text(ttl_sal);
});
});

Live Demo