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了解一下
    评论

报告相同问题?

悬赏问题

  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题