时间:2021-07-19 08:00:45 | 栏目:JavaScript代码 | 点击:次
一、问题
不操作页面,实现table表格中的checkbox选中功能
二、经过
刚开始的思路:
1、通过table的id,找到table渲染时生成的div,即table的下一个兄弟节点div.layui-table-view
2、由于checkbox是固定列,再通过第一步,找到div.layui-table-view的子元素.layui-table-fixed
3、紧接着,找出table的第一行的第一个td里面的input,即tr[data-index="0"] td input(注:这个input的类型就是checkbox)
4、找到input的下一个兄弟节点,即div.layui-form-checked
layui.use(['table', 'form', 'layer', 'layedit', 'laydate'], function() { // code //模拟checkbox选中功能 var checkbox = $('#employeesTable').next().find('.layui-table-fixed tr[data-index="0"] td input'); checkbox.next().click(); });
结果可想而知,并没有实现。在console中打印出来,找不到.layui-table-fixed,只能找到table里面的<tbody></tbody>,而且里面没有子节点。
三、结果
想一下,大概是table渲染数据时,模拟checkbox选中功能已经开始执行了。更这段code加一个延迟,这个问题解决。
setTimeout(function () { var td = $('#employeesTable').next().find('.layui-table-fixed tr[data-index="0"] td input'); td.next().click(); },3000);
PS:后台在写测试,需要操作页面dom,用到了这种模拟事件。