javascript - 单击行中的按钮时获取 HTML TR 的元素

标签 javascript php jquery jquery-delegate

我有以下 Dynamic HTML 行。

<tr role="row" class="odd">
     <td contenteditable="false" class="sorting_1"> </td>
     <td contenteditable="false"> <span class="name">Alex Nilson </span></td>
     <td contenteditable="false"><span class="price"> 1234 </span></td>
     <td contenteditable="false"> <span class="qty" >1234 </span></td>
     <td><button class="pr_edit" href="javascript:;"> Edit </button></td>
     <td><button class="pr_elete" href="javascript:;"> Delete </button></td>
</tr>

单击编辑按钮时,我需要将该特定行的单元格元素的值作为 JS 变量获取到 jQuery 中,我可以将其 AJAX POST 到另一个 PHP 页面以插入到数据库中。我试着像下面那样做,但没有成功。

$(document).ready(function () {
     $('.pr_edit').click(function () {
         var currentTD = $(this).parents('tr').find('td');            
         $.each(currentTD, function () {
             var iname = $(this).find("span.name").html();
             var iprice = $(this).find("span.price").val();
             var iqty=$(this).find("span.qty").val();
         });

它没有像我预期的那样捕获变量。我该如何实现?我需要将这些 SPAN 数据获取到三个变量。

最佳答案

您需要事件 delegation对于动态生成的元素,使用 text() 而不是 val() 来获取 span 的内容。还可以使用 closest('tr') 获取父级 tr,您不需要使用每个。

$(document).ready(function () {
     $('body').on('click', '.pr_edit', function () {
         var currentTR = $(this).closest('tr');
         var iname = currentTR.find("span.name").text();
         var iprice = currentTR.find("span.price").text();
         var iqty = currentTR.find("span.qty").text();
     });
 });      

关于javascript - 单击行中的按钮时获取 HTML TR 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35131489/

相关文章:

php - 插入不起作用

javascript - 如何使用 jQuery 过滤/克隆选择框选项?

javascript - 如何将进度元素设置为不确定

Javascript 检测 HTML 元素上可用的事件处理程序

php - codeigniter Controller 无法识别传递的变量

php - mysql_result():提供的参数不是C:\AppServ\www\script short\shortener.inc.php中的有效MySQL结果资源

jquery - 为什么 `$(this).children` 在以下代码中不起作用?

javascript - 按顺序向数组中的元素添加和删除类

javascript - 在 Angular 服务中将上传的文件转换为 base64

c# - 无法更改 javascript 中设置的 cookie 值?