繁体   English   中英

将特定行的td值作为数组传递给JavaScript

[英]Pass specific row's td values to JavaScript as array

我有一张包含一些标记的表:

<table>
  <tr class = 'common'>
    <td contenteditable = 'true' name = 'marks'>10</td>
    <td contenteditable = 'true' name = 'marks'>50</td>
    <td contenteditable = 'true' name = 'marks'>40</td>
  </tr>
  <tr class = 'common'>
    <td contenteditable = 'true' name = 'marks'>40</td>
    <td contenteditable = 'true' name = 'marks'>20</td>
    <td contenteditable = 'true' name = 'marks'>10</td>
  </tr>
</table>

在该行进行某些更改时,我想传递所有数字。

例如,我想将第一行上的数字50更改为10。 然后,第一行上的所有数字将作为数组传递给JavaScript。 第二行也是如此,如果我在第二行进行了一些更改,则第二行上的所有数字都将作为数组传递给JavaScript。

行数不是固定的。 因此,可能会超过2。

$(document).on('blur', '.common td[contenteditable]', function() {
      var numArray = array(); // 10,10,40   
});

要做到这一点,你可以挂钩一个input事件处理程序的contenteditable细胞。 然后,您可以使用map()在修改后的行中构建单元格值的数组,以准备在您的AJAX请求中使用。 像这样:

 $('.common td[contenteditable]').on('input', function() { var marks = $(this).closest('tr').find('td').map(function() { return $(this).text().trim(); }).get(); console.log(marks); // make your AJAX call here... }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table> <tr class="common"> <td contenteditable="true" name="marks">10</td> <td name="marks">50</td> <td name="marks">40</td> </tr> <tr class="common"> <td contenteditable="true" name="marks">40</td> <td name="marks">20</td> <td name="marks">10</td> </tr> </table> 

您可以使用jQuery的each()遍历所有td ,如下所示:

 $(document).on('blur', '.common td[contenteditable]', function() { var numArray = []; var allTD = $(this).closest('tr').find('td').each(function(){ numArray.push($(this).text()); }); console.log(numArray); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table> <tr class = 'common'> <td contenteditable='true' name='marks'>10</td> <td name='marks'>50</td> <td name='marks'>40</td> </tr> <tr class = 'common'> <td contenteditable = 'true' name = 'marks'>40</td> <td name = 'marks'>20</td> <td name = 'marks'>10</td> </tr> </table> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM