整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

JavaScript 表格隔行变色

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>JavaScript实现隔行变色的表格</title>
<style>
<!--
.datalist{
    border:1px solid #007108; /* 表格边框 */
    font-family:Arial;
    border-collapse:collapse; /* 边框重叠 */
    background-color:#d9ffdc; /* 表格背景色 */
    font-size:14px;
}
.datalist th{
    border:1px solid #007108; /* 行名称边框 */
    background-color:#00a40c; /* 行名称背景色 */
    color:#FFFFFF; /* 行名称颜色 */
    font-weight:bold;
    padding-top:4px; padding-bottom:4px;
    padding-left:12px; padding-right:12px;
    text-align:center;
}
.datalist td{
    border:1px solid #007108; /* 单元格边框 */
    text-align:left;
    padding-top:4px; padding-bottom:4px;
    padding-left:10px; padding-right:10px;
}
.datalist tr.altrow{
    background-color:#a5e5aa; /* 隔行变色 */
}
-->
</style>
<script language="javascript">
window.onload = function(){ //隔行变色代码
    var oTable = document.getElementById("oTable");
    for(var i=0;i<oTable.rows.length;i++){
    if(i%2==0) //偶数行时
        oTable.rows[i].className = "altrow";
		}
}
</script>
</head>
<body>
<table class="datalist" summary="list of members in EE Studay" id="oTable">
<tr>
<th scope="col">Name</th>
<th scope="col">Class</th>
<th scope="col">Birthday</th>
<th scope="col">Constellation</th>
<th scope="col">Mobile</th>
</tr>
<tr>
<td>isaac</td>
<td>W13</td>
<td>Jun 24th</td>
<td>Cancer</td>
<td>1118159</td>
</tr>
<tr>
<td>fresheggs</td>
<td>W610</td>
<td>Nov 5th</td>
<td>Scorpio</td>
<td>1038818</td>
</tr>
<tr>
<td>girlwing</td>
<td>W210</td>
<td>Sep 16th</td>
<td>Virgo</td>
<td>1307994</td>
</tr>
<tr>
<td>tastestory</td>
<td>W15</td>
<td>Nov 29th</td>
<td>Sagittarius</td>
<td>1095245</td>
</tr>
<tr>
<td>lovehate</td>
<td>W47</td>
<td>Sep 5th</td>
<td>Virgo</td>
<td>6098017</td>
</tr>
<tr>
<td>slepox</td>
<td>W19</td>
<td>Nov 18th</td>
<td>Scorpio</td>
<td>0658635</td>
</tr>
<tr>
<td>smartlau</td>
<td>W19</td>
<td>Dec 30th</td>
<td>Capricorn</td>
<td>0006621</td>
</tr>
<tr>
<td>shenhuanyan</td>
<td>W25</td>
<td>Jan 31th</td>
<td>Aquarius</td>
<td>0621827</td>
</tr>
<tr>
<td>tuonene</td>
<td>W210</td>
<td>Nov 26th</td>
<td>Sagittarius</td>
<td>0091704</td>
</tr>
<tr>
<td>ArthurRivers</td>
<td>W91</td>
<td>Feb 26th</td>
<td>Pisces</td>
<td>0468357</td>
</tr>
<tr>
<td>reconzansp</td>
<td>W09</td>
<td>Oct 13th</td>
<td>Libra</td>
<td>3643041</td>
</tr>
<tr>
<td>linear</td>
<td>W86</td>
<td>Aug 18th</td>
<td>Leo</td>
<td>6398341</td>
</tr>
<tr>
<td>laopiao</td>
<td>W41</td>
<td>May 17th</td>
<td>Taurus</td>
<td>1254004</td>
</tr>
<tr>
<td>dovecho</td>
<td>W19</td>
<td>Dec 9th</td>
<td>Sagittarius</td>
<td>1892013</td>
</tr>
<tr>
<td>shanghen</td>
<td>W42</td>
<td>May 24th</td>
<td>Gemini</td>
<td>1544254</td>
</tr>
<tr>
<td>venessawj</td>
<td>W45</td>
<td>Apr 1st</td>
<td>Aries</td>
<td>1523753</td>
</tr>
<tr>
<td>lightyear</td>
<td>W311</td>
<td>Mar 23th</td>
<td>Aries</td>
<td>1002908</td>
</tr>
</table>
</body>
</html>

格各行变色和高亮



体思路:

  1. 使用slot自定义el-tooltip内容
  2. v-html指令转义
  3. 删除 show-overflow-tooltip属性或设置为false,否则页面出现两个近乎重叠的tip
  4. 后端返回数据,使用正则表达式进行处理



<el-table-column
label="重点事项"
prop="keyMatter"
:show-overflow-tooltip="false"
class="el-tooltip__popper"
align="left" header-align="center"
style="max-height: 40px"
>
<template slot-scope="scope">
<el-tooltip class="item" effect="dark" placement="top">
<div v-html="(scope.row.keyMatter).replace(/\n/g, '<br />')" slot="content"></div>
<div class="oneLine">{{scope.row.keyMatter}}</div>
</el-tooltip>
</template>
</el-table-column>

实际代码转换主要用到正则表达式匹配实现所需要的效果。

以下是封装的方法,直接传值运用即可(相当于上述的优化版)



格式化数据

文档的表格跨页时,你会发现页末空白太多了,这时要怎么调整?

选中整张表格,右击【表格属性】,点击【行】选项,之后勾选【允许跨页断行】,点击确定即可解决空白问题。

两张表格重叠在一起,如何将其拆分出来?

之所以出现重叠的原因是设置了环绕格式,这时可以这样操作:

选中其中一张表格,右击鼠标打开【表格属性】,将文字环绕格式设置为“无”点击确定。

两个表格无法合并在一起?

原因在于两个表格环绕格式不同,比如这里可以选中第一个表格,右击【表格属性】,同样将其环绕格式设置为无,最后双击表格合并交点即可。