JQuery 表格操作(交替显示、拖动表格行、选择行等)

JQuery 确实很方便,简单的代码,却能实现一些不错的功能。


代码如下:

<script type='text/javascript'><!--
    $(function(){
        //交替显示行
        $('#alternation').click(function(){                
            $('tbody > tr:odd', $('#example')).toggleClass('alternation');
        });

//三色交替显示行
        $('#alternationThree').click(function(){                
            $('tbody > tr:nth-child(3n)', $('#example')).toggleClass('alternation');
            $('tbody > tr:nth-child(3n+2)', $('#example')).toggleClass('alternation3');
        });

//选择行
        $('#selectTr').click(function(){
            //为表格行添加选择事件处理
            $('tbody > tr', $('#example')).click(function(){
                $('.selected').removeClass('selected');                    
                $(this).addClass('selected'); //this 表示引发事件的对象,但它不是 jquery 对象
            }).hover(        //注意这里的链式调用
                function(){
                    $(this).addClass('mouseOver');
                },
                function(){
                    $(this).removeClass('mouseOver');
                }
            );                
        });

//增加排序功能
        $('#sort').click(tableSort);

//获取排好序后的主键值
        $('#getSequence').click(function(){
            var sequence = [];
            $('#content input[name=noticeSelect]').each(function(){
                sequence.push(this.value);
            });
            alert(sequence.join(','));
        });

//获取表格中已选择的复选框的值集合
        $('#getSelected').click(function(){
            var sequence = [];
            $('#content input[name=noticeSelect]:checked').each(function(){
                sequence.push(this.value);
            });
            alert(sequence.join(','));
        });

//按日期降序排列
        $('#dateDesc').click(descByDate);
    });

//表格排序
    function tableSort()
    {
        var tbody = $('#example > tbody');
        var rows = tbody.children();
        var selectedRow;
        //压下鼠标时选取行
        rows.mousedown(function(){
            selectedRow = this;
            tbody.css('cursor', 'move');
            return false;    //防止拖动时选取文本内容,必须和 mousemove 一起使用
        });
        rows.mousemove(function(){
            return false;    //防止拖动时选取文本内容,必须和 mousedown 一起使用
        });
        //释放鼠标键时进行插入
        rows.mouseup(function(){                
            if(selectedRow)
            {
                if(selectedRow != this)
                {
                    $(this).before($(selectedRow)).removeClass('mouseOver'); //插入                                                        
                }
                tbody.css('cursor', 'default');
                selectedRow = null;                        
            }                                
        });
        //标示当前鼠标所在位置
        rows.hover(
            function(){                    
                if(selectedRow && selectedRow != this)
                {
                    $(this).addClass('mouseOver');    //区分大小写的,写成 'mouseover' 就不行                        
                }                    
            },
            function(){
                if(selectedRow && selectedRow != this)
                {
                    $(this).removeClass('mouseOver');
                }
            }
        );

//当用户压着鼠标键移出 tbody 时,清除 cursor 的拖动形状,以前当前选取的 selectedRow            
        tbody.mouseover(function(event){
            event.stopPropagation(); //禁止 tbody 的事件传播到外层的 div 中
        });    
        $('#contain').mouseover(function(event){
            if($(event.relatedTarget).parents('#content')) //event.relatedTarget: 获取该事件发生前鼠标所在位置处的元素
            {
                tbody.css('cursor', 'default');
                selectedRow = null;
            }
        });
    }

//按日期降序排列
    function descByDate()
    {
        var descElements = $('#content > tr').get().sort(function(first, second){                
            var f = $('td:eq(4)', first).html();    //first = $('td:eq(4)', first).html();IE 下会有问题,FF 正常,下同
            var s = $('td:eq(4)', second).html();
            if(f < s)
                return 1;                
            if(f == s)
                return 0;
            return -1;                
        });            
        $(descElements).appendTo('#content');
    }
// --></script>

HTML:


代码如下:

<table id='example' style="width:650px; border-collapse:collapse;">
<thead style="text-align:center;" style="text-align:center;">
<tr><td colspan='5'>公告列表</td></tr>
<tr>
<th style="width:50px;">選擇</th>
<th style="width:50px;">序號</th>
<th style="width:300px;">標題</th>
<th style="width:100px;">關鍵詞</th>
<th style="width:150px;">發布日期</th>
</tr>
</thead>
<tbody id='content'>
<tr>
<td style="text-align:center;" style="text-align:center;"><input type='checkbox' name='noticeSelect' value='1' /></td>
<td style="text-align:center;" style="text-align:center;">01</td>
<td>微軟在 VS 2008 中引入了 jquery</td>
<td>Microsoft</td>
<td>2009-01-02 10:30</td>
</tr>
<tr>
<td style="text-align:center;" style="text-align:center;"><input type='checkbox' name='noticeSelect' value='2' /></td>
<td style="text-align:center;" style="text-align:center;">02</td>
<td>Linux微软Sun将探讨操作系统的未来</td>
<td>Sun</td>
<td>2009-01-03 09:30</td>
</tr>
<tr>
<td style="text-align:center;" style="text-align:center;"><input type='checkbox' name='noticeSelect' value='3' /></td>
<td style="text-align:center;" style="text-align:center;">03</td>
<td>联想集团董事长柳传志:联想将在一年内成功</td>
<td>聯想</td>
<td>2009-01-05 14:30</td>
</tr>
<tr>
<td style="text-align:center;" style="text-align:center;"><input type='checkbox' name='noticeSelect' value='4' /></td>
<td style="text-align:center;" style="text-align:center;">04</td>
<td>美议员要求立法限制Google地球 违反将日罚25万</td>
<td>Google</td>
<td>2009-01-10 20:45</td>
</tr>
<tr>
<td style="text-align:center;" style="text-align:center;"><input type='checkbox' name='noticeSelect' value='5' /></td>
<td style="text-align:center;" style="text-align:center;">05</td>
<td>FireFox实验室提出新标签页理念并发布原始模型</td>
<td>FireFox</td>
<td>2009-01-14 17:58</td>
</tr>
<tr>
<td style="text-align:center;" style="text-align:center;"><input type='checkbox' name='noticeSelect' value='6' /></td>
<td style="text-align:center;" style="text-align:center;">06</td>
<td>向Ruby之父学程序设计</td>
<td>Ruby</td>
<td>2009-01-19 07:22</td>
</tr>
<tr>
<td style="text-align:center;" style="text-align:center;"><input type='checkbox' name='noticeSelect' value='7' /></td>
<td style="text-align:center;" style="text-align:center;">07</td>
<td>Apple智能手机市场份额翻番达10.7%</td>
<td>Apple</td>
<td>2009-01-21 10:44</td>
</tr>
<tr>
<td style="text-align:center;" style="text-align:center;"><input type='checkbox' name='noticeSelect' value='8' /></td>
<td style="text-align:center;" style="text-align:center;">08</td>
<td>联发科助力 Windows Mobile加入山寨大军</td>
<td>联发科</td>
<td>2009-01-22 16:37</td>
</tr>
<tr>
<td style="text-align:center;" style="text-align:center;"><input type='checkbox' name='noticeSelect' value='9' /></td>
<td style="text-align:center;" style="text-align:center;">09</td>
<td>Nokia的开源Qt开发工具4.5版发布</td>
<td>Nokia</td>
<td>2009-01-28 14:08</td>
</tr>
<tr>
<td style="text-align:center;" style="text-align:center;"><input type='checkbox' name='noticeSelect' value='10' /></td>
<td style="text-align:center;" style="text-align:center;">10</td>
<td>GCC将接受IBM代码支持自动平行优化</td>
<td>IBM</td>
<td>2009-02-01 21:14</td>
</tr>
</tbody>
</table>

完整代码下载:JQuery 表格操作

(0)

相关推荐

  • 基于jQuery的表格操作插件

    大多数前端er都把网页中的table标签替换为div,主要就是因为div要比table更容易添加CSS样式.但是我们在日常应用中仍然要用到table表格,其中最好的例子就是对照表.今天彬Go将向大家推荐15个jQuery表格插件让你对数据表格进行显示.排序.筛选和操控.如jQuery表格排序插件.jQuery表格拖拽插件.jQuery树形表格插件.设置颜色.点击.替换等效果. 1.DataTables-强大的jQuery表格插件 DataTables是提供了大量特性的强大jQuery表格插件.例

  • JQuery实现动态操作表格

    最近要做的东西,是对一个表格动态的添加行,删除行,并且对表格中内容进行非空验证. <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title

  • 超级简单的jquery操作表格方法

    本文实例讲述了超级简单的jquery操作表格方法.分享给大家供大家参考.具体实现方法如下: 利用jquery给指定的table添加一行.删除一行 复制代码 代码如下: <script language="javascript" src="./jquery.js"></script> <table border="1px #ooo" id="test" name="test" c

  • jquery 操作表格实现代码(多种操作打包)

    650) this.width=650;" border=0> 650) this.width=650;" border=0> 代码很简单,在附件中,各位可以下载后直接运行. 复制代码 代码如下: <script type="text/javascript" language="javascript"> $(function() { jQuery.fn.alternateRowColors = function() { /

  • 使用jQuery操作HTML的table表格的实例解析

    最终效果图: 简单来看一下其中的主要部分: HTML: .td_back_color { background-color: red; } .td_center { text-align: center; font-weight:bold; } CSS: <table id="tbl_count"> <caption>2013春节聚会收支统计</caption> <tr> <th>姓名</th> <th>

  • JQuery操作表格(隔行着色,高亮显示,筛选数据)

    查了些资料,写了4个Demo: 1. 隔行着色 复制代码 代码如下: $('#table1 tr:odd').addClass('odd'); $('#table1 tr:even').addClass('even'); 效果: 2. 高亮含有特定数据的行 复制代码 代码如下: $("#table2 tr:contains('Fuck')").addClass("selected"); 3. 筛选数据 复制代码 代码如下: $("#filter"

  • JQuery对表格进行操作的常用技巧总结

    1.表格奇数行和偶数行分别添加样式 复制代码 代码如下: $(function(){ $('tr:odd').addClass("odd"); $('tr:even').addClass("even"); }); 不算表的头部 复制代码 代码如下: $(function(){ $('tbody>tr:odd').addClass("odd"); $('tbody>tr:even').addClass("even")

  • jQuery操作表格(table)的常用方法、技巧汇总

    以下列出13个jQuery操作table常用到的功能: 1.鼠标移动行变色 复制代码 代码如下: $('#table1 tr').hover(function(){    $(this).children('td').addClass('hover')}, function(){    $(this).children('td').removeClass('hover')}); 方法二: 复制代码 代码如下: $("#table1 tr:gt(0)").hover(function()

  • jquery 表格分页等操作实现代码(pagedown,pageup)

    没什么技术含量,先上图: 思路: 1:获取按键 2:判断当前表格行的位置 HTML结构: 复制代码 代码如下: <div id="formdiv" align="center"> firstname:<input type="text" id="firstname"/> lastname:<input type="text" id="lastname"/&g

  • JQuery 表格操作(交替显示、拖动表格行、选择行等)

    JQuery 确实很方便,简单的代码,却能实现一些不错的功能. 复制代码 代码如下: <script type='text/javascript'><!--     $(function(){         //交替显示行         $('#alternation').click(function(){                             $('tbody > tr:odd', $('#example')).toggleClass('alternatio

  • jQuery实现表格颜色交替显示的方法

    本文实例讲述了jQuery实现表格颜色交替显示的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtm

  • 解决elementui表格操作列自适应列宽

    业务需要前端根据用户权限动态显示对应按钮,直接把操作列的列宽写死的话,在按钮少的情况下不是那么好看,所以想到了一个骚操作... 写死宽度时是这样的: 开始 给操作列绑定宽度属性 :width="actionColWidth < 80 ? 80 : actionColWidth" 把操作列的所有按钮用一个div套起来 class="action-col" <div class="action-col"> <el-button

  • Jquery 实现表格颜色交替变化鼠标移过颜色变化实例

    Jquery 实现表格颜色交替变化,点击选中行,鼠标移过颜色变化效果图如下: 源码(Demo)打包下载 html代码如下: 复制代码 代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="http:/

  • jquery通过AJAX从后台获取信息并显示在表格上的实现类

    在上篇文章给大家介绍了JQuery通过AJAX从后台获取信息显示在表格上并支持行选中 ,现在,抽个时间他们处理了一下,这样就不需要每次写代码了,可以节省大量的时间,具体请看下文: 具体代码如下: //获取数据并显示数据表格 function GetTableData(tableId,ChlickEvent) { var table = $(tableId); var url=table.data('url'); $.ajax({ url: url, type: 'post', dataType:

  • jQuery 行背景颜色的交替显示(隔行变色)实现代码

    一些css的定义,可以根据需要自己选择.//显示单双行显示不同背景色[方法一]: // $("#UL_id li:even").attr("className","redClass"); //显示单双行显示不同背景色[方法二]: $("#UL_id li:even").addClass("redClass"); <ul id="UL_id"> <li>单数<

  • JS/jQuery实现超简单的Table表格添加,删除行功能示例

    本文实例讲述了JS/jQuery实现超简单的Table表格添加,删除行功能.分享给大家供大家参考,具体如下: 最近需要表格添加删除行,添加行简单,删除行就有点儿懵逼了,于是网上找实例,功夫不负有心人,终于让我找到了,下面的是代码,大家觉得可以,记得点赞哦!!!谢谢! 需要的拿去,转载请在明显的位置标注出出处!!! <html> <head> <title>table添加/删除行</title> </head> <body> <t

  • js操作table元素实现表格行列新增、删除技巧总结

    本文实例讲述了js操作table元素实现表格行列新增.删除的方法.分享给大家供大家参考,具体如下: /************ TableTool.js ****************************************************************************************************************** **********************************************************

  • javascript 极速 隐藏/显示万行表格列只需 60毫秒

    隐藏表格列,最常见的是如下方式: 复制代码 代码如下: td.style.display = "none"; 这种方式的效率极低.例如,隐藏一个千行表格的某列,在我的笔记本(P4 M 1.4G,768M内存)上执行需要约 4000毫秒的时间,令人无法忍受.例如如下代码: 复制代码 代码如下: <body> <input type=button onclick=hideCol(1) value='隐藏第 2 列'> <input type=button on

随机推荐