如果选中复选框,如何获取行的数据

时间:2017-08-02 20:41:36

标签: javascript ajax function

我有一个返回行值的函数,但是我无法将它们分开并将它们放在不同的参数中。

function guardarImpuestos() {
  $('input[type=checkbox]').each(function() {
    if ($(this).is(':checked')) {
      //test
      console.log($(this).closest("tr").children("td").get()[0]);
      console.log($(this).closest("tr").children("td").get()[1]);
      console.log($(this).closest("tr").children("td").get()[2]);
      //end test
      var $row = $(this).closest('tr');
      $('td', $row).each(function(i) {
        var abc = $(this).text();
        console.log(abc);
      })
      var parametros = {
        "cuit": $("#cuit").val(),
        "impuesto": i need the first val here,
        "concepto": and second here
      };
      $.ajax({
        data: parametros,
        url: 'api/insertar_impuestos.php',
        type: 'post',
        success: function(response) {
          alert("Impuesto agregado.");
        }
      });
    }
  });
}

1 个答案:

答案 0 :(得分:1)

您可以循环遍历行中的每个<td>元素,并将每个元素的文本放入数组中。然后,您可以使用数组表示法values[0]等访问这些文本元素。

function guardarImpuestos() {

$('input[type=checkbox]:checked').each(function () {

  var $row = $(this).closest('tr');
  var values = [];

  $('td', $row).each(function(i){
      values.push( $(this).text() );
  })
  var parametros = {

    "cuit" : $("#cuit").val(),
    "impuesto" : values[0],
    "concepto" : values[1]
  };

  $.ajax({

      data:  parametros,
      url:   'api/insertar_impuestos.php',
      type:  'post',
      success:  function (response) {
              alert("Impuesto agregado.");
      }

  });

});

}

另一种方法是,如果你有一个小的,确定数量的单元格,就是跳过$('td',$row).each(函数,然后执行以下操作:

...
var parametros = {
    "cuit" : $("#cuit").val(),
    "impuesto": $('td',$row).eq(0).text(),
    "concepto": $('td',$row).eq(1).text()
}
...