js动态显示表格的汇总信息和详细信息

我在做数据结果展示的时候,想要实现一个如下的功能:用户可以选择一个时间段,默认显示这个时间段的汇总数据,当鼠标点击这个时间段的时候,将显示每个时间点的详细数据,再次点击的时候,详细数据收起,只显示汇

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

js动态显示表格的汇总信息和详细信息我在做数据结果展示的时候,想要实现一个如下的功能:
    用户可以选择一个时间段,默认显示这个时间段的汇总数据,当鼠标点击这个时间段的时候,将显示每个时间点的详细数据,再次点击的时候,详细数据收起,只显示汇总信息。
    功能是不是很简单?对于javascript高手和熟手来说很简单了,不过对于我这个新人来说,还是搞了好一会儿才弄好。下面show一下我的代码,希望js高手能指点一二:
  

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<head>
    <title>Ad Click _何问起 </title>
    <style type="text/css">
        .showdate{
            text-decoration:underline;
        }
        
        #forms {
            margin-top:20px;
            width:1000px;
            height:40px;
            margin:0px aut0;
            border-collapse:collapse;
            text-align:center;
        }
        #forms form{
            display:block;
            float:right;
            margin-left:10px;
        }
    </style>
        <script language="javaScript">
        function showdetails(flagname)
        {
            var t = document.getElementsByTagName('table');
        
            var reg= new RegExp(flagname);
            for (var i=0;i<t.length;i++)
            {
                var tr = t[i].getElementsByTagName('tr');
                for (var j=0; j<tr.length;j++)
                {
                    var names= tr[j].id;
                    if(reg.test(tr[j].id)) 
                    {
                        if(tr[j].style.display=='none')
                        {
                            tr[j].style.display = '';
                        }else
                        {
                            tr[j].style.display ='none';
                        }
                    }
                }
            }
        }
        </script>
</head>

<body>
<H2 align="center">
        20080411 - 20080413 PageViews
</H2>
<p>
    
<div id="forms">        
        <form  method="POST" action="" target="_self">
            开始日期:<input type="text" name="startdate" value="20080413">
            结束日期:<input type="text" name="enddate" value="20080413">
            <input type=submit value="查询">

        </form>
</div>
<table id="gross" style="" align="center" border="1" borderColor=gray cellPadding=3 class="bowser" >
<tr>
    <th>统计日期</th>
    <th>hostname</th>
    <th>PV</th>
</tr>
<tr>
    <td class="showdate" onclick="showdetails('flag0');">20080412-20080413</td>
    <td> aa.bb.com</td>
    <td>152,679</td>
</tr>
<tr id=flag0_0 style="display:none"> 
    <td>20080413</td>
    <td> aa.bb.com</td>
    <td>152,527</td>
</tr>
<tr id=flag0_1 style="display:none"> 
    <td>20080412</td>
    <td> aa.bb.com</td>
    <td>152</td>
</tr>    
<tr>
    <td class="showdate" onclick="showdetails('flag1');">20080412-20080413</td>
    <td> cc.bb.com</td>
    <td>152,679</td>
</tr>
<tr id=flag1_0 style="display:none"> 
    <td>20080413</td>
    <td> cc.bb.com</td>
    <td>152,527</td>
</tr>
<tr id=flag1_1 style="display:none"> 
    <td>20080412</td>
    <td> cc.bb.com</td>
    <td>152</td>
</tr>    
</table>
<a href="http://hovertree.com/">何问起</a>
</body>
</html>

 

 
其主要功能就是要设置好每个tr的id,然后在Javasript中调用document.getElementByTagName(‘tr’)函数找到指定的tr的object集合,然后在判断每个tr的名字是否与指定的字符串匹配(var reg= new RegExp(‘flag0’); reg.test(object.id)),如果匹配,那么就将该tr的style.display设置成显示或者不显示就ok了。

JavaScript说难也不难,说简单也不简单啊!

推荐:http://www.cnblogs.com/roucheng/p/texiao.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120504.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • webstrom激活码2021[最新免费获取]「建议收藏」

    (webstrom激活码2021)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月27日
    128
  • docker镜像导入导出_导出docker镜像

    docker镜像导入导出_导出docker镜像简介当服务器无法访问公网的时候,又要pull镜像,这个时候可以将其他服务上的镜像导出,然后再导入到要用的服务器。方法一:1.保存save-加载load格式:dockersaveIMAGE(镜像)使用dockerimages查看本机已有的镜像(也可以使用dockercommit命令把一个正在运行的容器保存为镜像),如:导出:格式:dockersaveimagesID>/存放位置/打包文件名.tardockersave42cdba9f1b08

    2025年9月18日
    4
  • 进程通信方式总结与盘点

    进程通信方式总结与盘点进程通信是指进程之间的信息交换 这里需要和进程同步做一下区分 进程同步控制多个进程按一定顺序执行 进程通信是一种手段 而进程同步是目标 从某方面来讲 进程通信可以解决进程同步问题 首先回顾下我们前面博文中讲到的信号量机制 为了实现进程的互斥与同步 需要在进程间交换一定的信息 因此信号量机制也可以被归为进程通信的一种方式 但是也被称为低级进程通信 主要原因为 效率低 一次只可操作少量的

    2025年7月26日
    6
  • 版权文字:Power by DedeCms 如何去除?[通俗易懂]

    版权文字:Power by DedeCms 如何去除?[通俗易懂]dedeCMS系统中的版权声明信息中含有“PowerbyDedeCms”字样,如何去除?dedeCMS近期的新版本至2013-6-7更新包以来,不管新版还是旧版更新补丁包,更新后网站页底都会出现powerbydedecms。*一、powerbydedecms什么意思?在我们上网的时候,会见到页面页底很多带powerbydedecms的网站,powerbydede…

    2022年7月13日
    17
  • elementui更改el-table表头背景颜色和字体颜色

    elementui更改el-table表头背景颜色和字体颜色博主在使用elementui中的el-table时感觉默认表格样式实在过于简洁,尤其表头与表格内容之间区别较小,不利于辨认,降低了用户体验。如图所示:于是,博主尝试更改一下表头的背景颜色和字体颜色,方法如下:根据elementui官网的说法,header-cell-style是表头单元格的style的回调方法,也可以使用一个固定的Object为所有表头单元格设置一样的Style。…

    2022年6月20日
    544
  • 十进制小数转化为二进制小数[通俗易懂]

    十进制小数转化为二进制小数[通俗易懂]一、二进制数转换成十进制数由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为”按权相加”法。例如把二进制数110.11转换成十进制数。二、十进制数转换为二进制数十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。1.十进制整数转换为二进制整数十进制整数转换为二进制整数采用”除2取余,逆序排列”法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再

    2022年9月25日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号