最终效果
需要实现的功能
- 输入行数和列数, 生成符合函数和列数的表格
- 表格中的数字范围 0-99, 随机产生
- 表格需要背景颜色
- 如果行数和列数为空, 弹框提示
- 如果输入不符合规范(1-50), 弹框提示(包括 0, 01,hello)
- 反复点击按钮, 可以重复生成符合规范的列表
最终代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<title>插入制定表格数的表格</title>
<meta name="description" content="" />
<meta name="keywords" content="" />
<link href="" rel="stylesheet" />
<style>
body {
font: 700 14px/1.5 Arial;
margin: 0;
padding: 0 10px;
}
table {
clear: both;
border: 1px solid #000;
}
td {
cursor: pointer;
text-align: center;
border: 1px solid #000;
padding: 5px;
}
#setting {
float: left;
clear: left;
line-height: 28px;
margin: 10px 0;
}
#setting input {
width: 50px;
font-family: inherit;
border: 2px solid #ccc;
margin: 0 5px;
padding: 4px;
}
#btn {
font-size: 14px;
line-height: 18px;
color: #fff;
text-decoration: none;
background: #353535;
border-top: 1px #999 solid;
border-radius: 5px;
padding: 4px 6px;
}
em {
width: 25px;
height: 25px;
display: inline-block;
margin-right: 5px;
}
#setting label,
#setting input,
#setting a {
float: left;
}
strong {
color: red;
margin-left: 20px;
}
</style>
</head>
<body>
<div id="setting">
<label>行数</label>
<input type="text" id="row" />
<label>列数</label>
<input type="text" id="col" />
<a href="javascript:;" id="btn">生成表格</a>
<strong>提示:行和列只能是数字,且最大为50</strong>
</div>
<script src="demo.js"></script>
</body>
</html>
window.onload = function(){
var oBtn = document.getElementById('btn');
oBtn.onclick = function(){
var row = document.getElementById('row').value;
var col = document.getElementById('col').value;
var reg = /^(50|[1-9]|[1-4][0-9])$/;
if(!row || !col){
alert("请输入表格数");
return;
}
if(!reg.test(row) || !reg.test(col)){
alert('输入的表格格式不正确! 滚!')
return;
}
var oTable = document.querySelector('table');
if(oTable){
oTable.parentNode.removeChild(oTable);
}
var oTable = document.createElement('table');
for (var i = 0; i < row; i++) {
var oTr = document.createElement('tr');
for (var j = 0; j < col; j++) {
var oTd = document.createElement('td');
oTd.innerHTML = Math.floor(Math.random()*100);
var first = Math.floor(Math.random()*155+100);
var second = Math.floor(Math.random()*155+100);
var third = Math.floor(Math.random()*155+100);
oTd.style.backgroundColor = "rgb("+first+","+second+","+third+")";
oTr.appendChild(oTd);
}
oTable.appendChild(oTr);
}
document.body.appendChild(oTable);
}
}
专栏地图
- [做特效, 学JS] -- 00 开篇
- [做特效, 学JS] -- 01 超链接鼠标移入变大变红, 鼠标移除还原
- [做特效, 学JS] -- 02 鼠标移入, div变大变红, 鼠标移出, 回复原貌
- [做特效, 学JS] -- 03 网页换肤
- [做特效, 学JS] -- 04 复选框全选
- [做特效, 学JS] -- 05 复选框全选/全不选
- [做特效, 学JS] -- 06 复选框全选/全不选/反选
- [做特效, 学JS] -- 07 网页选项卡
- [做特效, 学JS] -- 08 倒计时
- [做特效, 学JS] -- 09 正经的 全选和反选
- [做特效, 学JS] -- 10 自动生成表格
- [做特效, 学JS] -- 11 加餐-神奇的正则表达式
- [做特效, 学JS] -- 12 加餐-DOM扩展
- [做特效, 学JS] -- 13 加餐-聊聊BOM