jQuery 处理Ctrl 和shift 实现多选功能

本文介绍了如何利用jQuery结合Ctrl和Shift键实现多选功能,适用于网页表格或列表中,提供了一种高效的选择多项数据的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<span style="font-size:18px;"><style type="text/css">
    #list div,#list .on{
        width:200px;
        border: 1px solid #ddd;
        margin: 2px;
        cursor: pointer;
    }
    #list .on{
        border: 1px solid red;
        background-color: #fff731
    }
</style>
<div id="list">
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <div>4</div>
    <div>5</div>
    <div>6</div>
    <div>7</div>
    <div>8</div>
</div>
<input type="text" id="tt" style="width:200px" />
<script type="text/javascript">
$(document).ready(function(){
    var key=0;  //记录ctrl/shift键
    var val=",";//记录已经选择的值
    var ibe =-1; //记录初始值
    $(window).keydown(function(e){
        if(e.ctrlKey){
            key=1;
        }else if(e.shiftKey){
            key=2;
        }
        $("#bb").val("初始值:"+ibe+" key:"+key);
    }).keyup(function(){
            key=0;
    });
    $("#list div").click(function(){
        var i=$(this).index();
        if(ibe!=-1&&key==2){
            $(this).siblings().removeAttr("class");
            val=",";
            for(var ii=Math.min(i,ibe);ii<=Math.max(i,ibe);ii++){
                val+=ii+",";
                $("#list div").eq(ii).addClass("on");
            }
        }else if(key==1){
            if(val.indexOf(","+i+",")!=-1){
                val=val.replace(","+i+",",",");
                $(this).removeAttr("class");
            }else{
                val+=i+",";
                $(this).addClass("on");
                ibe=i;
            }
        }else{
            $(this).addClass("on").siblings().removeAttr("class");
            ibe=i;
            val=","+i+",";
        }
        $("#tt").val(val);
    });
});
</script></span>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值