表格操作

表格查找

在搜索框里输入想要的数字标号或书名可以找到相应的书

在这里插入图片描述

<!DOCTYPE html>
<html>
<head>
    <meta content="text/html" charset="utf-8">
    <title>我的test</title>
    <style type="text/css">
        *{
            margin:0;
            padding:0;
            font-family:"Microsoft YaHei";
        }
        table{
            margin-top:20px;
            border:1px solid #000;
            border-collapse:collapse;
        }
        table tr td{
            border:1px solid #000;
            padding:5px 10px;
        }
    </style>
</head>
<body>
<input type="text"/>
<input type="button" value="查找" onclick="find();"/>
<table>
    <tr>
        <td>1</td>
        <td>C#</td>
    </tr>
    <tr>
        <td>2</td>
        <td>C++</td>
    </tr>
    <tr>
        <td>3</td>
        <td>js</td>
    </tr>
    <tr>
        <td>4</td>
        <td>Jquery</td>
    </tr>
    <tr>
        <td>5</td>
        <td>html</td>
    </tr>
    <tr>
        <td>6</td>
        <td>PHP</td>
    </tr>
    <tr>
        <td>7</td>
        <td>Perl</td>
    </tr>
    <tr>
        <td>8</td>
        <td>PASCAL</td>
    </tr>
</table>
</body>
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript">
    function find(){
        var str=/^\S+$/;  //严格匹配非空格的字符
        // 取到text框里的值
        var findText = $('input').eq(0).val();
        if(str.test(findText)){
            $('tr').hide().filter(':contains('+findText+')').show();
        }else{
            //如果输入的不是字符,就将tr里面的全部显示出来
            $('tr').show();
        }
    }
</script>
</html>

表格行交换

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<!DOCTYPE html>
<html>

<head>
    <meta content="text/html" charset="utf-8">
    <title>我的test</title>
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
            font-family: "Microsoft YaHei";
        }

        table {
            border: 1px solid #000;
            border-collapse: collapse;
        }

        table tr td {
            border: 1px solid #000;
            padding: 5px 10px;
            cursor: pointer;
        }

        .bgColor {
            background: red;
        }
    </style>
</head>

<body>
    <table>
        <tr>
            <td>1</td>
            <td>jQuery</td>
            <td>Javascript</td>
        </tr>
        <tr>
            <td>2</td>
            <td>.Net</td>
            <td>C#</td>
        </tr>
        <tr>
            <td>3</td>
            <td>J2EE</td>
            <td>Java</td>
        </tr>
        <tr>
            <td>4</td>
            <td>PHP</td>
            <td>&nbsp;</td>
        </tr>
        <tr>
            <td>5</td>
            <td>Perl</td>
            <td>&nbsp;</td>
        </tr>
    </table>
</body>
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript">
    $(function () {
        var destRow = undefined;//目标行,即要改变到的行
        var curtRow;//当前点击行
        var chgRow = undefined;//要改变位置的行
        var clickcount = 0;//点击次数

        $('table tr td').each(function () {
            var currentTD = $(this);
            currentTD.on('click', function () {
                clickcount += 1;//每次点击,点击次数加1
                var currentRow = currentTD.parent('tr'); //找到当前点击td所对应的tr
                
                if (clickcount % 2 == 1) { //点击次数为奇数次
                    chgRow = currentRow;   //要改变位置的行等于当前的行
                    chgRow.addClass('bgColor');  //给当前的行添加背景颜色
                } else {
                    destRow = currentRow;  //如果点击次数为偶数,当前的行是要改变到的行
                }

                if (destRow != undefined && chgRow != undefined) {//只有当被改变行与目标行都存在时,才进行位置交换。该判断条件不能省略,不然单数次的时候会直接把clickcount重置,导致计数出错
                    if (chgRow.position().top > destRow.position().top) {//在下面的行的top大于在上面行的top值,所以用insertBefore
                        chgRow.insertBefore(destRow);
                    } else if (chgRow.position().top < destRow.position().top) {
                        chgRow.insertAfter(destRow);
                    }
                    clickcount = 0;  //全部重置
                    chgRow.removeClass('bgColor');
                    destRow = undefined;
                    chgRow = undefined;
                }
            });
        });
    });
</script>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值