qq_41403993 2018-10-23 08:50 采纳率: 50%
浏览 2029

翻页保存已勾选的复选框

var checkedIds=""; //翻页保存选中的id
 changeIds(){
        var oneches=document.getElementsByName("ids");
        for(var i=0;i<oneches.length;i++){
            if(oneches[i].checked==true){
                 //避免重复添加(若存在元素时,不添加)
                if(!contains(checkedIds,oneches[i].value)){
                     checkedIds+=oneches[i].value+",";
                     console.log(oneches[i].value);
                }
             }
            if(oneches[i].checked==false){
                //取消复选框时 含有该id时将id从全局变量中去除
                if(contains(checkedIds,oneches[i].value)){
                    checkedIds=checkedIds.replace((oneches[i].value+","),"");
                }
             }
         }
     }

    function getChecked(){
        if(checkedIds==""){
            return;
        }
        var oneches=document.getElementsByName("ids");

        for(var i=0;i<oneches.length;i++){
            //全局变量中含有id,则该复选框选中
            if(contains(checkedIds,oneches[i].value)){
                 oneches[i].checked="checked";
                 console.log(oneches[i].value);
            }
         }
     }
/**
     * 判断数组是否存在元素
     * @param obj
     * @param ele
     * @return
     */
    function contains(obj, ele) {
        if(obj==""){
            return;
        }
        /*若参数obj为字符串时,需要转换成数组*/
        var arr = obj.split(",");
        var i = arr.length;
        while (i--) {
            if (arr[i] == ele) {
                return true;  
            }  
        }  
        return false;  
    }
 <a href="list?pageIndex=${pageUtil.pageIndex<pageUtil.pageCount?pageUtil.pageIndex+1:pageUtil.pageCount}" class='next' onclick="changeIds();getChecked();contains(this,obj,ele);">下一页</a> 

图片说明

  • 写回答

1条回答 默认 最新

  • 苏南South 2018-10-24 23:55
    关注
    • 你的contains(this,obj,ele) ,ele应该也会报错,它是一个document element Node 节点,你都没有获取,ele成document.getElementsById("xxx"),
    • 而obj应该是你这个页面的数据源,你的数据源是如何获取的,把它传递进去,
    • 翻页的勾选记录应该存储在本地,按页来存储,这样上翻下翻再从本地内取之前的勾选状态 ,localStorage、sessionStorage了解一下
    评论

报告相同问题?

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料