JSP页面动态生成表格并为表格添加事件(续)

在上一篇文章中虽然已经为动态生成的表格添加了事件,但是运行后会发现还是有局限性的(选中一行后再选下一行这两行都会变色,肯定是不行的),在实际开发中会用到的可能就是选中表格中的某行记录并使之变色,你可以选第一行,也可以选第二行等等,有且只能有一行选中的变色。此外,本篇文章还增加了移入行变色等效果,下面就进行稍微的修改一下
<html>
<head>
  <title>Test</title>
  <script type="text/javascript">
      var data = "张三,男,11;李四,男,12;王五,女,21;千龙,女,22;";//在实际中的数据可能从数据库查询 
      var datInfo = data.split(";");//分隔一次,变成一个一维数组

      //给表格动态添加 行 事件
      function tr_click(){
        var oObj = window.event.srcElement;//在下面调用这个方法时便可以不用传this了
        //可以选择不同的贷款记录
              if(oObj.tagName.toLowerCase() == "td"){
                var oTr = oObj.parentNode;   
                //document.all.table1.rows.length;//总的表格行数(包括表头)
                for(var i=1; i<document.all.table1.rows.length; i++){//table1:表格的Id 
                  document.all.table1.rows[i].style.backgroundColor = "";   
                  document.all.table1.rows[i].tag = false;   
                }
                oTr.style.backgroundColor = "#F5DEB3";
                oTr.tag = true;   
                alert(oTr.getElementsByTagName("td")[0].innerHTML);
                // alert(oTr.innerText);//得到整行的信息
              }
        }
        //鼠标移动到选择行上时的行变色
      function over(){   
        var oObj = event.srcElement;
        if(oObj.tagName.toLowerCase() == "td"){   
          var oTr = oObj.parentNode;
          if(!oTr.tag) oTr.style.backgroundColor = "#E1E9FD";
        }
      }
      //鼠标移出另外一行时关闭已选行变色
      function out() {
        var oObj = event.srcElement;
        if(oObj.tagName.toLowerCase() == "td"){
          var oTr = oObj.parentNode;
          if(!oTr.tag) oTr.style.backgroundColor = "";
        }
      }
      function toTable(rowCounts,colCounts,datInfo){
        var textHTML = '<table id="table1" cellpadding="0" cellspacing="0" border="1" width="98%">';
        textHTML+='<tr align="center"><td align="center">姓名</td><td align="center">年龄</td><td>性别</td></tr>';
        for(var i=0; i<rowCounts; i++){
            textHTML += '<tr align="center" height="30" onclick="tr_click()" onMouseOver="over()" onMouseOut="out()">';//为每一行添加点击事件
            for(var j=0; j<colCounts; j++){
              //datInfo[i].split(",")把一维数组再次分隔变成二维数组,二维数组的每一维对应表格的每一行,不明白可以用alert弹出一下就知道了
              textHTML += "<td>" + (datInfo[i].split(","))[j] + "</td>";
            }
        }
        textHTML += "</tr></table>";
        document.getElementById("testTable").innerHTML = textHTML;
      }
 </script>
 </head>

<body >
  <!--datInfo.length-1是因为从后台传过来的data数据最后一个分号占了一行,这里我确定我生成的表格是只有3列-->
  <input type="button" name="btnGo" value="生成" onclick="toTable(datInfo.length-1,3,datInfo);"/>
  <br />
  <div id="testTable"></div>
</body>
</html>
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JSP Maker 是一款强大易用的代码生成器,可从MySQL和Oracle中快速生成一套完整JSP(JAVA服务器页)代码.使用生成JSP,用户可以轻松查看,编辑,搜索以及添加删除网页上的数据库记录。生成的代码清洁并易于用户定制.JSP开发者可以更快地建立网站应用程序。 JSP 代码生成工具 JSP Maker 下载JSP 代码生成工具 JSP Maker 下载 JSPMaker功能列表:(单击链接查看更多详细信息和屏幕截图) 快速入门向导可快速生成JSP网站 可选的JSP列表,添加/复制,查看,编辑,删除和搜索每个表/查询的页面。所有脚本都通过URL正确链接。可自定义的字段显示顺序。 每个字段的高度可自定义的视图和编辑格式 编辑页面的客户端JavaScript验证 每个表/查询的可选搜索功能(基本/高级/两者)。 可选的高级安全性,用于保护数据免受未经授 通过以下方式定制生成的网站的外观和感觉: 与您自己的CSS链接 设置正文和表格属性 选择HTML模板 预览HTML表格布局 可定制的模板 支持代码页,字符集,区域设置ID和会话超时。可选的默认日期格式。 支持不同的SQL标识符引用字符 每个字段的标题和默认值(如果数据库是MS Access,将使用数据库中的原始值。) 从项目文件保存和恢复项目(JMP文件) 将项目设置与数据库中的更改同步。 在IIS中创建虚拟目录 主/细节页面 文件上传到文件夹或数据库 CSS样式表 现场聚合 动态选择列表

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值