javascript - 如何选择表格元素并运行 JavaScript

标签 javascript jquery datatables

我有一个表,想要在行中按钮的单击事件(由数据表填充)上运行js,我使用了数据表网站上的代码,但似乎不起作用。

$(document).ready(function(){
     $('#expvisa').on('click','button',function() {
         var msData = table.row($(this).parents('tr')).data();
         alert( msData[0] +" salary is: "+ msData[4]);
     });
 });
<table id="expvisa" class="table table-bordered" cellspacing="0" >
  <thead>
    <tr>
      <th>EMP Id</th>
      <th>VISA OFFICE</th>
      <th>EMPLOYEE NAME</th>
      <th>QATAR ID</th>
      <th>ID MONTH</th>
      <th>Process </th>                
    </tr>
  </thead>            
</table>

这是创建表的脚本。

        function bringvisa_exp(){	
		
			$.ajax({				
				url:"report_visaexp.php",
				type:"POST",
				data:{comp_n:$('#comp_n').val(),visam_f:$('#visam_f').val()},
				async: false,
				success: function(dataX){	
					obj = JSON.parse(dataX);
					$('#expvisa').DataTable({
					data: obj,
					"columnDefs": 	[ {
					"targets": -1,
					"data": null,
					"defaultContent": "<button>Apply</button>"
									} ]
					} );				
				}								
			}); 
		}
enter image description here

最佳答案

您需要在ajax call success function block 内调用此脚本。因为您的 click 事件DOM 准备好之前就绑定(bind)了。

 $('#expvisa tbody').on('click','button',function() {
     var msData = table.row($(this).parents('tr')).data();
     alert( msData[0] +" salary is: "+ msData[4]);
 });

使用以下内容更新您的 bringvisa_exp() 函数:

function bringvisa_exp(){       
        $.ajax({                
            url:"report_visaexp.php",
            type:"POST",
            data:{comp_n:$('#comp_n').val(),visam_f:$('#visam_f').val()},
            async: false,
            success: function(dataX){   
                obj = JSON.parse(dataX);
                $('#expvisa').DataTable({
                  data: obj,
                  "columnDefs": [ {
                    "targets": -1,
                    "data": null,
                    "defaultContent": "<button>Apply</button>"
                   } ]
                } );
                $('#expvisa').on('click','button',function() {
                  var msData = table.row($(this).parents('tr')).data();
                  alert( msData[0] +" salary is: "+ msData[4]);
                });
            }                               
        }); 
    }

关于javascript - 如何选择表格元素并运行 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37275433/

相关文章:

javascript - 使用 CoffeeScript 为选择框选择默认值

Javascript 数据表填充数据问题(未返回错误)

javascript - YouTube Javascript API onstateChange 事件问题

javascript - 如何使用引号和双引号将 JavaScript 变量连接成复杂的字符串?

jquery - 如何创建没有 SCSS /暂停的循环幻灯片

javascript - 如果元素具有类并且另一个元素为空,则更改另一个元素上的类

javascript - 如果没有记录/显示总记录数,如何在数据表中继续显示分页栏?

jquery - Knockout + jQuery 数据表 "enable"单击分页后绑定(bind)丢失

javascript - 在 HTML 中执行动态表计算 - jQuery?

javascript - 电话号码验证无法通过