现在表格内容需要显示的要求如下:

1, 表格很大,界面放不小,需要放到div中。

2, 在div中可以用scroll滑动查看。

3, td中的内容保持在一行中。

4, 可以点击tr,然后可以选中并了解点击了哪行。

html:

<div id="div1">
  <table id="table1">
    <tr></tr>
  </table>
<div>

css:

//div宽度要小于table就有scroll了。
#table1 {border-collapse:collapse;height:;}
#table1 table ,th, td {border: 1px solid black;}
#table1 td{
width:230px; /*宽度根据需要设置,也可以设置百分比*/
height:25px;line-height:25px; /*高度也是根据需要设置*/
white-space:nowrap; /*文本显示不自动换行*/
/*overflow:hidden;*/ /*超出部分显示*/
}
#div1 {border: 1px solid red;width:; height:180px;overflow:scroll;}

js:

给点击增加一个onmousedown事件处理。

var trs = document.getElementById('table1').getElementsByTagName('tr');
var choose;
window.onload = function(){
for( var i=0; i<trs.length; i++ ){
trs[i].onmousedown = function(){
tronmousedown(this);
}
}
}
function tronmousedown(obj){
for( var o=1; o<trs.length; o++ ){
if( trs[o] == obj ){
trs[o].style.backgroundColor = 'lightblue';
choose = o;
}
else{
trs[o].style.backgroundColor = '';
}
}
}

可以一起交流。

--------------------------------------!!!

修改的分割线

收到博友daryluo的建议:“代码有一点不太好的地方,就是给每一个tr都添加了事件,事实上,只需要给table 一个元素添加事件就可以,当用户点击到td元素上时, 事件会冒泡到tr,然后到table, 在事件处理函数中,可以获取td 元素,然后找到父tr, tr上有rowIndex属性,就知道点击哪行了.”

于是,我把事件追加到了table上,通过手机evevt的srcElement找到td元素,然后通过parentNode找到其tr元素。再对此元素单独进行处理即可。

代码如下:

js:

var tb = document.getElementById('table1')
var trs = tb.getElementsByTagName('tr') window.onload = function(){
tb.onmousedown = function(evt){
tronMousedownNew(evt)
}
}
function tronMousedownNew(evt){
var ele = evt.srcElement;
var rowIndex = ele.parentNode.rowIndex;
choose = rowIndex;
process(rowIndex);
} function process(index)
{
for(var i=0; i< trs.length; i++){
if(i == index){
trs[i].style.backgroundColor = 'lightblue';
}
else{
trs[i].style.backgroundColor = '';
}
}
}

刚刚开始入门,多谢指教。

[修改后]html+css 做成一个可浏览的表格的更多相关文章

  1. input输入框修改后自动跳到最后一个字符

    <input class="m-form-control" onpaste="return false" placeholder="直播间名称& ...

  2. 通过重新上传修改后的docker镜像来在kubeapps上实现k8s上部署的nginx版本更新,回退等

    docker操作:制作自定义镜像 # docker下载官方nginx镜像 docker pull nginx # 基于该镜像运行一个容器 docker run -it -d --name nginx_ ...

  3. docker for mac的JSON配置文件中的hosts项修改后无法生效

    docker for mac的JSON配置文件中的hosts项修改后无法生效 docker 2.1k 次浏览 问题对人有帮助,内容完整,我也想知道答案0问题没有实际价值,缺少关键内容,没有改进余地 增 ...

  4. 以流方式读写文件:文件菜单打开一个文件,文件内容显示在RichTexBox中,执行复制、剪切、粘贴后,通过文件菜单可以保存修改后的文件。

    MainWindow.xaml文件 <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation&q ...

  5. 用java将excel表格中的内容修改后写入到另一个excel中

    package nn; import java.io.File; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl. ...

  6. 让/etc/profile文件修改后立即生效

    方法1: 让/etc/profile文件修改后立即生效 ,可以使用如下命令: # .  /etc/profile 注意: . 和 /etc/profile 有空格 方法2: 让/etc/profile ...

  7. 让/etc/profile文件修改后立即生效(转)

    方法1:让/etc/profile文件修改后立即生效 ,可以使用如下命令:# .  /etc/profile注意: . 和 /etc/profile 有空格方法2:让/etc/profile文件修改后 ...

  8. [saiku] 源码整合[maven整合]

    saiku源码的整合分为[普通web项目整合]和[maven整合]两种 本节主要是讲解如何整合为maven项目 转载自:http://blog.csdn.net/gsying1474/article/ ...

  9. [terry笔记]Oracle会话追踪(二):TKPROF

    接上一笔记[terry笔记]Oracle会话追踪(一):SQL_TRACE&EVENT 10046 http://www.cnblogs.com/kkterry/p/3279282.html ...

随机推荐

  1. C语言编程技巧-signal(信号)[转]

    自 http://www.uml.org.cn/c++/200812083.asp 信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念.Linux对信号机制的大致实现方法.如何使用 ...

  2. 阿里云slb和ucloud负载均衡ulb添加ssl证书将http服务https化的配置详解

    阿里云和ucloud服务器配置ssl证书将http服务https化的配置详解 项目背景: 苹果App于2017年1月1日将启用App Transport Security安全功能,即强制App通过HT ...

  3. 删除注释云平台JS,加快DISCUZ访问

      对于港台或者美国服务器的用户可能感觉访问慢,页面卡:实际上是由于 http://www.discuzlab.com/discuz.gtimg.cn/cloud/scripts/discuz_tip ...

  4. oracle的游标

    declare v_0 number; v_1 number; cursor c1 is select productordernumber from his_productorder@pro_crm ...

  5. SQL优化 CREATE STATISTICS

    CREATE STATISTICS 语法: https://msdn.microsoft.com/zh-cn/library/ms188038.aspx STATISTICS优化中的使用案例: htt ...

  6. CentOS6.5源码安装python3.5.2

    前提: 1.实现自动补全需要安装模块 readline-devel (yum install -y readline-devel) 2.实现支持SSL协议需安装模块 openssl-devel (yu ...

  7. js中原型继承的概念

  8. WCF在tcp通道下启用httpget

    关于tcp通道下,启用httpget,必须启用一个http的基地址,如果要启用元数据交换,host中必须开启服务描述. //01 create host Uri tcpBaseAddress = ne ...

  9. HashMap的两种实现方式

    本文主要简要分析了Java中和Redis中HashMap的实现,并且对比了两者的异同 1.Java的实现 下图表示了Java中一个HashMap的主要实现方式 因为大家对于Java中HashMap的实 ...

  10. 修改tomcat的端口