js进行操作table隐藏与显示查询

Css样式:
    
/*这是概括的是评价总数:总数,好评总人数,差评总次数*/
    .sfont{
        font-size: 12px;
        color: #8C8C8C;
        text-align: center;
    }
    .docname{
        width:30%;
        color: #333;
        font-size: 13px;
        margin-right: 0px;
        text-align:right;
    }
    .dnameinfo{
        text-align: center;
    }
    .doctab{
        height:40px;
        margin:0px 2% 0px 2%;
        width:96%;
        font-size:16px;
        border-collapse:collapse;
    }
    .doctab td{
        text-align:center;
        width:50%;
    }
    /*虚线的画法*/
    .dashed-line{
    border-top:1px dashed #cccccc;height: 1px;overflow:hidden;
    }
    .specific_info{
        display: none;
    }
 

JSP文件:

</head>
<body>
<div class="top_total">
<div id="mask" class="mask">
    <div class="panel">
        <table class="search_table_top" cellspacing="0" cellpadding="0" border="0" width="0">
            <tr>
                <td>
                    <input type="text" class="texstyle"  placeholder="请输入要搜索的名">
                </td>
                <td class="pic_td"><a href="#" id="canceltext" class="ghost_buttom">取消</a></td>
            </tr>
        </table>
    </div>
</div>
<div id="mask1" class="mask1"></div>
<div class="top_info">
<table width="0" border="0" cellpadding="0"  cellspacing="0" class="depar_table_top">
    <tr>
        <td><a href="index.html" class="ke_bg_top"><img src="images/icon_left.png" class="icon_pic15"/> 评价内容</a></td>
        <td class="pic_td">
            <a href="#" id='msearch' class="ke_bg_top"><img src="images/icon_search.png" class="icon_pic25"></a>  
        </td>
    </tr>
</table>    
</div>
</div>
<div style="margin:40px 0px 70px 0px" class="allinfo">

<!-- 进行迭代数据 -->
<c:forEach items="${list}" varStatus="num" var="val">
    <a href="#" class="ke_bg" onClick="deptclick(this)" etape="${num.index}">
        <table width="0" border="0" cellpadding="0"  cellspacing="0" class="depar_table etape${num.index}">
            <tr>
                <td style="width:30%;color: #333;">${val.dept}</td>
                  <td><span class="sfont">(人数:${val.doctorcount }人   好评:${val.goodreputation }  差评:${val.badreputation })</span></td>
                <td class="pic_td"><img src="images/collapsed.gif" width="20px" height="20px"  />
            </tr>
        </table>
    </a>
    <div class="specific_info${num.index}">
        <c:forEach items="${val.doctorlist}" varStatus="nvnum" var="data">
            <div class="dashed-line"></div>
             <a href="/divcss/doctorinfo?id=${data.id}" id="id${num.index}${nvnum.index}">
                    <table width="0" border="0" cellpadding="0"  cellspacing="0" class="doctab">
                        <tr>
                            <td  class="docname">${data.name}</td>
                            <td style="width: 40%"> <span class="sfont dnameinfo">(好评:${data.nicerepution}  差评:${data.badrepution})</span></td>
                            <td class="pic_td"><img src="images/icon_right.png" width="20px" height="20px" style="display:none" />
                            <img src="images/pic_yuyue_xiala.png" width="20px" height="20px"/></td>
                        </tr>
                   </table>
            </a>
        </c:forEach>
    </div>
    <div class="line_index"></div>
</c:forEach>
</div>
<script type="text/javascript" src="js/jquery.js"></script>
</body>
</html>



js文件:
    
//进行对js代码进行优化与面向对象的书写
    var ProcessDept=function(){
        //变量的声明
 
        var $tabId=$(".doctab");
        var $tabTrId=$(".doctab tr");

        var $deptId=$(".ke_bg");
  
        var $deptTab=$(".depar_table");

        var $tlineId=$(".dashed-line");
        var $deptLine=$(".line_index");
        
        //进行函数的定义
        return{
   
            showAll:function(){
                 for(var i=0;i<$deptId.length;i++){
                       $($deptId[i]).show();
                       $($deptLine[i]).show();
                   }
                 for(var j=0;j<$tabId.length;j++){
                       $($tabId[j]).show();
                       $($tlineId[j]).show();
                  }
            },
     
            imgechange:function(){
                for(var i=0;i<$deptTab.length;i++){
                    $(".etape"+i+" tr").children("td").eq(2).find("img").attr("src","images/collapsed.gif");
                }
            },
            //隐藏
            hideAlldoctors:function(){
                for(var i=0;i<$tabId.length;i++){
                    $(".specific_info"+i).hide();
                }
            },
            /**搜索框弹出相应事件 **/
            showSearchWindow:function(){
                //遮层已经覆盖
                $(".panel").slideToggle("slow");
                $("#mask").css("height","40px")
                          .css("width","100%")
                          .show(); 
                $("#mask1").css("height",$(document).height()-40)
                           .css("width","100%")  
                           .css("margin-top","40px")
                           .show();  
            },
            //按下阴影层搜索框往上返回
            hideSearchWindow:function(){
                 $(".panel").slideToggle("slow");
                 $("#mask").hide();  
                 $("#mask1").hide();
            },
            //按钮的触发,图片会出现改变,相对应的信息也会出现显示或者的隐藏
            deptClickEvent:function(obj){
                //这个只是查找的是table的class值
                var isrc=$(obj).find("table").attr("class").split(" ")[1];
                //获取etape的值
                var eta=$(obj).attr("etape");
                //进行遍历所有的科室标签值
                for(var i=0;i<$deptId.length;i++){
                    if(i==parseInt(eta)){
                        continue;
                    }
                    //其他的向下的图片进行转为水平的放置
                    $(".etape"+i+" tr").children("td").eq(2).find("img").attr("src","images/collapsed.gif");
                    //然后隐藏所有的下拉选的东西
                    $(".specific_info"+i).hide();
                }
                //换图片的效果
                var imgobj=$("."+isrc+" tr").children("td").eq(2).find("img");
                var img1=imgobj.attr("src");
                if(img1=="images/collapsed.gif"){
                    imgobj.attr("src","images/expanded.gif");
                }else{
                    imgobj.attr("src","images/collapsed.gif");
                }
                //获取隐藏的每个科div
                var myclass=$(obj).next().attr("class");
                //进行向下滑动
                $("."+myclass).slideToggle("slow"); 
            },
            compareToDoctorText:function(){
                //获取table的全部第一行的所有的字符
                //进行数组的添加
                var arr =[];
                for(var i=0;i<$tabTrId.length;i++)
                {
                    //获取的第1列的值
                    var oprice=$($tabTrId[i]).children("td").eq(0).text();
                    //获取相应的字符存到相应的字符串当中
                    arr[i]=oprice;
                } 
                //存放table的坐标的值
                var numArray=[];
                var num=0;
                var texvalue=new RegExp($(".texstyle").val());
                for(var i=0;i<arr.length;i++){
                    //获取相应的table的坐标
                    //判断table里面的查询的内容是否与我键入的字符串相等,如果相等就为true
                     var bp=texvalue.test(arr[i]);
                     if(bp){
                         num++;
                        numArray.push(i);
                     }
                }
                //遮层显示
                 $("#mask1").hide(); 
                    if(num==0){
                        //一个都没有匹配到
                        $(".allinfo").hide();
                    }else if(num==$tabTrId.length){
                        //匹配到了全部,那就只显示科
                        $(".allinfo").show();
                        this.showAll();
                        this.imgechange();
                        this.hideAlldoctors();
                    }else{
                        for(var j=0;j<$tabId.length;j++){
                            var msun=0;
                            for(var i=0;i<numArray.length;i++){
                                //减少遍历的次数
                                if(numArray[i]==j){
                                        var dept= $($tabId[j]).attr("class");
                                        $("."+dept).parent("a").parent().show();
                                        $($tabId[j]).show();
                                        $($tlineId[j]).show();
                                        msun++
                                        break;
                                }
                            }
                            if(msun==0){
                                $($tabId[j]).hide();
                                $($tlineId[j]).hide();
                          }
                        }
                        //进行隐藏其他的科
                        for(var i=0;i<$tabId.length;i++){
                            var othernum=0;
                            for(var z=0;z<numArray.length;z++){
                                var data=$($tabId[numArray[z]]).parent("a").attr("id");
                                var num=parseInt(data.substring(2,3));
                                if(num==i){
                                    othernum++;
                                    break;
                                }
                            }
                            if(othernum==0){
                                $(".specific_info"+i).prev().hide();
                                $(".specific_info"+i).next().hide();
                            }
                        }
                        //进行图片的切换
                        for(var z=0;z<numArray.length;z++){
                            var data=$($tabId[numArray[z]]).parent("a").attr("id");
                            var num=parseInt(data.substring(2,3));
                            $(".etape"+num+" tr").children("td").eq(2).find("img").attr("src","images/expanded.gif");
                         }
                    }
            }
        }
    }();
    $(function(){
        ProcessDept.imgechange();

        ProcessDept.hideAlldoctors();
        /**
         *搜索框弹出相应事件
         **/
        $("#msearch").click(function(){
            ProcessDept.showSearchWindow();
        });
        $("#canceltext,#mask1").click(function(){
             ProcessDept.hideSearchWindow();
        });
        //下面是进行查询
        $(".texstyle").keyup(function(){
            //进行初始化
            ProcessDept.compareToDoctorText();
        });
    });
    function deptclick(obj){
        ProcessDept.deptClickEvent(obj);
    }




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值