zoukankan      html  css  js  c++  java
  • 软工终结日报-多条件查询的逻辑修改 6/8

    之前做的多条件查询中,相关的查询条件全部使用and相连,毕竟数据是直接加载到页面上的,所以其实是在页面上进行的数据集分割

    那么,我们可不可以将判断条件变得更加多元化呢?比如动态的and和or。

    我先写了一个条件判断函数:

        function srcs(p){
            
            var s2=document.getElementById("s2").value;
            var s3=document.getElementById("s3").value;
            var s4=document.getElementById("s4").value;
            var s5=document.getElementById("s5").value;
            var s6=document.getElementById("s6").value;
            
            var s0=[s2,s3,s4,s5,s6];
    
            var title=document.getElementById("title").value;
            var title1=document.getElementById("title1").value;
            var title2=document.getElementById("title2").value;
            var title3=document.getElementById("title3").value;
            var title4=document.getElementById("title4").value;
            var title5=document.getElementById("title5").value;
            
            var titles=[title1,title2,title3,title4,title5];
            
            var a=p.includes(title);
            
            for(i=0;i<5;i++){
                if(s0[i]=='和'){
                    a=a&&(p.includes(titles[i]));
                }else{
                    a=a||(p.includes(titles[i]));
                }
            }    
            return a;
        }

    通过获取到选项元素的值并借此来判断的函数

    之后改写原本的条件筛选函数:

    function changeable(){
            var year=document.getElementById("year").value;
            var title=document.getElementById("title").value;
            var title1=document.getElementById("title1").value;
            var title2=document.getElementById("title2").value;
            var title3=document.getElementById("title3").value;
            var title4=document.getElementById("title4").value;
            var title5=document.getElementById("title5").value;
            var tab=document.getElementById("iccvtable");
            for( var i=0;i<tab.rows.length;){
                      tab.deleteRow(0);   
            }
            tab=document.getElementById("eccvtable");
            for( var i=0;i<tab.rows.length;){
                      tab.deleteRow(0);   
            }
            tab=document.getElementById("cvrptable");
            for( var i=0;i<tab.rows.length;){
                      tab.deleteRow(0);   
            }
            ic=0;ec=0;cv=0;
            for(var i = 0;i < iccv.length; i++){
                if(srcs(iccv[i].title.toLowerCase())&&iccv[i].year.includes(year)){
                dogo("iccvtable",iccv[i].title,iccv[i].links,iccv[i].year);
                ic++;
                }
            }
            for(var i = 0;i < eccv.length; i++){
                if(srcs(eccv[i].title.toLowerCase())&&eccv[i].year.includes(year)){
                dogo("eccvtable",eccv[i].title,eccv[i].links,eccv[i].year);
                ec++;
                }
            }
            for(var i = 0;i < cvrp.length; i++){
                if(srcs(cvrp[i].title.toLowerCase())&&cvrp[i].year.includes(year)){
                dogo("cvrptable",cvrp[i].title,cvrp[i].links,cvrp[i].year);
                cv++;
                }
            }
        }

    好,这样就实现了多条件查询咯!

  • 相关阅读:
    使用npm安装一些包失败了的看过来(npm国内镜像介绍)
    利用JMX统计远程JAVA进程的CPU和Memory
    Spring Boot学习笔记
    django数据库时间存储格式问题
    解决 Ubuntu 无法调节屏幕亮度的问题(转)
    django models auto_now和auto_now_add的区别
    django redis操作
    接口测试的工具
    django中migration文件是干啥的
    mysql简单操作(实时更新)
  • 原文地址:https://www.cnblogs.com/Sakuraba/p/14912368.html
Copyright © 2011-2022 走看看