jquery表格获取行、列
来源:互联网 发布:php soapclient xml 编辑:程序博客网 时间:2024/06/05 17:41
之前接到个任务,要把excel表格放到页面上,其中有一个需求可以获得任意单元格所在行和所在列的数据。
我知道去网上搜现成的解决办法肯定能搜到,但是我想用自己的代码解决此事。所以解决办法有些笨拙。
开始做的时候,我给表格添加单元格自动绑定了一个鼠标事件,
为什么是给表格添加单元格自动绑定事件,因为整个表格的数据都是在页面加载完后,通过ajax向后台获取表格数据,后台读取表格并解析成json传到页面,页面接受到json后,再用jquery解析后台传过来的表格json数据,再生成表格。这就产生了一个javascript常见问题,dom在文档加载后创建,javascript获取不到这个dom所以也就没法直接绑定dom的事件。为此,jquery提供了一个on()方法,此方法绑定在要添加节点的父元素上:
$('#rtable').on('mouseenter','td'function(){});
这样每次向#rtable中添加td都会自动绑定mouseenter事件。
获取row是很简单的,但是我在获取列的时候,第一次用的方法是判断鼠标在第几列,然后获取每一行的这一列。这个方法简单表没问题,当我测试复杂表时,因为单元格宽度有大有小,结构也会有跨单元格的情况,这样获取会乱。
然后我想到了,既然获取列数会乱,所以直接获取坐标。放鼠标移到单元格内时,过去此单元格的横坐标,然后在遍历所有的单元格,把符合这个坐标的挑选出来。
$("#rtable").on("mouseenter", "td", function () { var x = $(this).position().left; var y = $(this).position().top; $("#show").css("left",x); $("#show").css("top",y-55); $("#show").show(); $(".spinner").css("position", "absolute"); $(".spinner").css("left", $("#show").css("left")); $(".spinner").css("top",$("#show").css("top")); $(".spinner").show(); var pojs = []; //var indx = $(this).prevAll().length; $("#rtable tr td").each(function () { if ($(this).position().left == x) { $(this).css("background-color", "#6fe0ff"); var text = $(this).text(); if (text != null && !isNaN(text) && text != "") { pojs.push(text); } } }); // $("[id$='." + indx + "']").css("background-color", "#6fe0ff"); // $("[id$='." + indx + "']").each(function () { // }); $.post("table_view_source.ashx", { num: pojs.toString() }, function (data) { $(".spinner").hide(); $("#show").html(data); }); });
这样就又面临了一个新的问题,效率。循环每一个单元格在数量少的情况下可用,但是数量一多就会造成明显卡顿,甚至崩溃。我在测试的时候几万个单元格就有明显的卡顿。
所以我想这种解决方法肯定是不太完美的,需要换另一种办法解决。
博主的个人博客:blog.leezw.net
- jquery表格获取行、列
- jQuery获取表格第一列的值
- 用jquery 获取一个表格里面第3行第4列的值!
- jquery table表格 获取选中的某一行和某一列的值
- 表格中用Jquery获取双击行的某列的值
- jQuery实现表格冻结行和列
- jQuery 隐藏表格列
- jQuery 遍历表格列
- 点击表格获取表格行或列索引
- 点击表格获取表格行或列索引
- 点击表格获取表格行或列索引
- jquery获取表格中按钮所在列其它列的值
- 当td没有任何标示时,在jQuery中实现获取其在表格中的行和列:
- jquery 隐藏表格某列
- jquery实现表格列锁定
- jQuery获取一个表格行值
- jquery获取表格数据
- Jquery 表格处理(过滤行,过滤列,分页)
- [Leetcode] Flatten Binary Tree to Linked List
- hdu 4461 The Power of Xiangqi【模拟】水题
- Web标准续
- spring-boot与mybatis整合优化介绍
- python技巧(3)--python cookbook学习笔记
- jquery表格获取行、列
- Linux常用命令
- 二进制 十进制数的转换
- FragmentTabHost切换Fragment时避免重复加载UI
- CentOS6.5离线安装mysql遇到的几个问题
- Leetcode 93 Restore IP Addresses
- Android实战——改造PullToRefresh下拉刷新和上拉加载
- openwrt hotplug
- 深剖VR,AR和MR三者之间关系