控制页面元素的显示和隐藏

CreateTime--2017年7月13日07:30:55
Author:Marydon

js控制页面元素的显示和隐藏&<c:if></c:if>标签控制页面元素的显示和隐藏

说明:本文的重点在使用后者实现

实例:

  医嘱类型分为:长嘱,临嘱,中医三种,页面默认只显示长嘱信息,点击临嘱或中医显示对应信息;选中变色。

CSS部分:

/* 医嘱:长嘱,临嘱,中医样式显示 Start*/
.yz_td1 {
    line-height: 28px;
    height: 28px;
    padding-left: 10px;
    width: 100px;
}
/*灰色背景色*/
.yz_td2 {
    font-size: 14px;
    height: 28px;
    line-height: 28px;
    width: 100px;
    color: #333;
    margin: 4px;
    background: #e7e9e6;
    border-radius: 6px;
    text-align: center;
}
/*绿色背景色*/
.yz_td3 {
    font-size: 14px;
    height: 28px;
    line-height: 28px;
    width: 100px;
    color: #fff;
    margin: 4px;
    background: #42b012;
    border-radius: 6px;
    text-align: center;
}
/* End 医嘱:长嘱,临嘱,中医嘱样式显示*/

共用js

var consEval = new ConsEval();
function ConsEval() {
    /**
     * 控制医嘱类型显示内容
     */
    this.ctrlYzTitle = function (type,senderId) {
        // 更改class样式:选中变色
        switch (senderId) {
            case ‘yzOption1‘:
                $get(‘yzOption1‘).className = ‘yz_td3‘;
                $get(‘yzOption2‘).className = ‘yz_td2‘;
                $get(‘yzOption3‘).className = ‘yz_td2‘;
                break;
            case ‘yzOption2‘:
                $get(‘yzOption2‘).className = ‘yz_td3‘;
                $get(‘yzOption1‘).className = ‘yz_td2‘;
                $get(‘yzOption3‘).className = ‘yz_td2‘;
                break;
            case ‘yzOption3‘:
                $get(‘yzOption3‘).className = ‘yz_td3‘;
                $get(‘yzOption1‘).className = ‘yz_td2‘;
                $get(‘yzOption2‘).className = ‘yz_td2‘;
                break;
            default:
                break;
        }

        // 获取医嘱tr数据
        var yzTrs =  $(‘#yzDiv tr:gt(0)‘);
        $(yzTrs).each(function() {
            var yzType = $(this).attr(‘yzType‘);
            // 相等显示,否则隐藏
            if (type == yzType) {
                $(this).show();
            } else {
                $(this).hide();
            }
        });
    }
}

  方式一:使用JAVASCRIPT实现

  HTML部分

<table cellspacing="0" cellpadding="1" border="0" class="medical_table" width="100%" height="100%">
    <tbody>
        <tr>
            <td class="yz_td1">查看医嘱</td>
            <td width="100">
                <div class="yz_td3" onclick="consEval.ctrlYzTitle(‘长嘱‘,‘yzOption1‘);" id="yzOption1">长嘱</div>
            </td>
            <td width="100">
                <div class="yz_td2" onclick="consEval.ctrlYzTitle(‘临嘱‘,‘yzOption2‘);" id="yzOption2">临嘱</div>
            </td>
            <td width="100">
                <div class="yz_td2" onclick="consEval.ctrlYzTitle(‘中医‘,‘yzOption3‘);" id="yzOption3">中医</div>
            </td>
            <td></td><!-- 空td不要删除 -->
        </tr>
        <tr>
            <td valign="top" colspan="5">
                <div class="Container" id="yzDiv">
                    <table class="my_table" border="0" cellpadding="1" cellspacing="0" align="center" id="yzTable">
                        <tr>
                            <td style="background-color: #F8F9FA;">医嘱类型</td>
                            <td style="background-color: #F8F9FA;">开始时间</td>
                            <td style="background-color: #F8F9FA;">结束时间</td>
                            <td style="background-color: #F8F9FA;">饮片处方</td>
                        </tr>
                        <c:forEach var="table" items="${model.DADVICELIST}" varStatus="s">
                            <tr yzType="${table.TYPE }">
                                <td>${table.TYPE }</td>
                                <td>${table.START_TIME }</td>
                                <td>${table.END_TIME }</td>
                                <td align="left">
                                    ${table.CONTENT }
                                    <div style="display:inline-block;text-align:right;min-width:100px;padding-right:50px;float:right;color:#0000ff;">
                                        &nbsp;&nbsp;&nbsp;&nbsp;${table.USAGENAME }
                                        &nbsp;&nbsp;${table.HZ }
                                        &nbsp;&nbsp;${table.DOSE }
                                    </div>
                                </td>
                            </tr>
                        </c:forEach>
                    </table>
                </div>
            </td>
        </tr>
    </tbody>
</table>

  JAVASCRIPT部分

/**
 * 页面加载完毕,默认选中长嘱,只显示长嘱信息
 */
window.onload = function() {
    if ($(‘#yzDiv tr‘).length > 1) {
        // 获取医嘱tr数据
        var yzTrs =  $(‘#yzDiv tr:gt(0)‘);
        $(yzTrs).each(function(index) {
            var yzType = $(this).attr(‘yzType‘);
            if (‘长期‘ == yzType) {
                $(this).show();
            } else {
                $(this).hide();
            }
        });
        // 显示长嘱信息
        consEval.ctrlYzTitle(‘长嘱‘,‘yzOption1‘);
    } else {
        // 隐藏
        $(‘#yzOption1‘).parent().hide();
        $(‘#yzOption2‘).parent().hide();
        $(‘#yzOption3‘).parent().hide();
        $(‘#yzDiv‘).parent().attr(‘colspan‘,2);
    }
}

  方式二:使用<c:if></c:if>标签实现

  HTML部分

<table cellspacing="0" cellpadding="1" border="0" class="medical_table" width="100%" height="100%">
    <tbody>
        <tr>
            <td class="yz_td1" id="yzTitle">查看医嘱</td>
            <c:if test="${!empty model.DADVICELIST}">
                <td width="100">
                    <div class="yz_td3" onclick="consEval.ctrlYzTitle(‘长嘱‘,‘yzOption1‘);" id="yzOption1">长嘱</div>
                </td>
                <td width="100">
                    <div class="yz_td2" onclick="consEval.ctrlYzTitle(‘临嘱‘,‘yzOption2‘);" id="yzOption2">临嘱</div>
                </td>
                <td width="100">
                    <div class="yz_td2" onclick="consEval.ctrlYzTitle(‘中医‘,‘yzOption3‘);" id="yzOption3">中医</div>
                </td>
            </c:if>
            <td></td><!-- 空td不要删除 -->
        </tr>
        <tr>
            <td valign="top" <c:if test="${!empty model.DADVICELIST}">colspan="5"</c:if><c:if test="${empty model.DADVICELIST}">colspan="2"</c:if>>
                <div class="Container" id="yzDiv">
                    <table class="my_table" border="0" cellpadding="1" cellspacing="0" align="center" id="yzTable">
                        <tr>
                            <td style="background-color: #F8F9FA;">医嘱类型</td>
                            <td style="background-color: #F8F9FA;">开始时间</td>
                            <td style="background-color: #F8F9FA;">结束时间</td>
                            <td style="background-color: #F8F9FA;">饮片处方</td>
                        </tr>
                        <c:forEach var="table" items="${model.DADVICELIST}" varStatus="s">
                            <tr yzType="${table.TYPE }" <c:if test="${table.TYPE != ‘长期‘}">style="display:none;"</c:if>>
                                <td>${table.TYPE }</td>
                                <td>${table.START_TIME }</td>
                                <td>${table.END_TIME }</td>
                                <td align="left">
                                    ${table.CONTENT }
                                    <div style="display:inline-block;text-align:right;min-width:100px;padding-right:50px;float:right;color:#0000ff;">
                                        &nbsp;&nbsp;&nbsp;&nbsp;${table.USAGENAME }
                                        &nbsp;&nbsp;${table.HZ }
                                        &nbsp;&nbsp;${table.DOSE }
                                    </div>
                                </td>
                            </tr>
                        </c:forEach>
                    </table>
                </div>
            </td>
        </tr>
    </tbody>
</table>

  JAVASCRIPT部分

    见共用js

实现效果:

  

总结:

  能够利用加载页面时使用<c:if></c:if>标签来实现元素显示和隐藏的,推荐使用c标签来实现。  

时间: 2024-08-01 10:43:35

控制页面元素的显示和隐藏的相关文章

JS控制HTML元素的显示和隐藏

利用来JS控制页面控件显示和隐藏有两种方法,两种方法分别利用HTML的style中的两个属性,两种方法的不同之处在于控件隐藏后是否还在页面上占空位. 方法一: document.getElementById("EleId").style.visibility="hidden"; document.getElementById("EleId").style.visibility="visible"; 利用上述方法实现隐藏后,页面

利用来JS控制页面控件显示和隐藏有两种方法

利用来JS控制页面控件显示和隐藏有两种方法,两种方法分别利用HTML的style中的两个属性,两种方法的不同之处在于控件隐藏后是否还在页面上占空位. 方法一:  1 2 document.getElementById("EleId").style.visibility="hidden"; document.getElementById("EleId").style.visibility="visible"; 利用上述方法实现隐

JS设置html元素的显示和隐藏

利用来JS控制页面控件显示和隐藏有两种方法,两种方法分别利用HTML的style中的两个属性,两种方法的不同之处在于控件隐藏后是否还在页面上占空位.  方法一: document.getElementById("EleId").style.visibility="hidden"; document.getElementById("EleId").style.visibility="visible"; 利用上述方法实现隐藏后,页

使用CSS3动画 animation 来控制元素的显示和隐藏

CSS3中 animation 和 transition 俩样式都能创建动画效果,而且是后台C++执行的,所以效率比普通jQuery的js模拟动画的效率高很多,所以建议大家能用css实现的效果都用css. transition的使用比较简单,这里就不介绍了,着重为大家介绍下 animation . animation 的css属性有很多,本文通过 animation-name 来控制启动动画和转换动画,以下是一个通过 animation 来控制元素的显示和隐藏的例子(仅支持webkit): <!

JS/jquery实现鼠标控制页面元素显隐

最近因为公司网站要上一个活动广告横幅,当用户鼠标划过时显隐二维码.像这种鼠标事件控制页面元素显隐的情况,码农们会经常遇到,可以通过javascript或jquery代码实现,下面就几种常见需求一起归纳一下. mouseout和mouseleave 这里需要特别注意mouseout与mouseleave的区别.我们通过下面代码示例来看一下: <p style="color:#333333;font-family:-apple-system, " font-size:16px;&qu

CSS——元素的显示与隐藏

元素的显示与隐藏 在CSS中有三个显示和隐藏的单词比较常见,我们要区分开,他们分别是 display visibility 和 overflow. 他们的主要目的是让一个元素在页面中消失,但是不在文档源码中删除. 最常见的是网站广告,当我们点击类似关闭不见了,但是我们重新刷新页面,它们又会出现和你玩躲猫猫!! display 显示 display 设置或检索对象是否及如何显示. display : none 隐藏对象 与它相反的是 display:block 除了转换为块级元素之外,同时还有显示

h5之scrollIntoView控制页面元素滚动

如果滚动页面也是DOM没有解决的一个问题.为了解决这个问题,浏览器实现了一下方法,以方便开发人员如何更好的控制页面的滚动.在各种专有方法中,HTML5选择了scrollIntoView()作为标准方法.scrollIntoView()可以在所有的HTML元素上调用,通过滚动浏览器窗口或某个容器元素,调用元素就可以出现在视窗中.如果给该方法传入true作为参数,或者不传入任何参数,那么窗口滚动之后会让调动元素顶部和视窗顶部尽可能齐平.如果传入false作为参数,调用元素会尽可能全部出现在视口中(可

jQuery判断元素是否显示与隐藏

jQuery判断一个元素是显示还是隐藏,jQuery使用is()方法来判断一个元素是否显示,反之则为隐藏 核心代码 if($("#username").is(":hidden")){ } 实例代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>test.html</ti

JavaScript - 元素的显示和隐藏

元素的显示和隐藏 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>元素的显示和隐藏</title> <style type="text/css"> img{ display:block; } </style> <script type="text/