表格元素的添加和删除,计算器,全选全不反选
表格添加一行,点删除删掉这一行
例子1:
html代码:
<button id = "add1" >添加一行</button> <table id="tab" width="100%" border="1" cellpadding="0" cellspacing="0"> <tr> <th>编号</th> <th>姓名</th> <th>性别</th> <th>年龄</th> <th>操作</th> </tr> <tr> <td>1</td> <td>张三</td> <td>男</td> <td>20</td> <td> <button onClick="delTr(this)">删除</button> </td> </tr> </table>
显示为:
js代码:
var addbtn=null;//找到添加按钮 var tab1=null; //点击添加方法 window.onload=function(){ tab1= document.getElementById('tab');//获取表格 var add1btn = document.getElementById('add1');//获取按钮 //点击添加事件 add1btn.onclick = function (){ var trplus = document.createElement('tr');//添加标签,新建一行 for (var i = 0; i <= 4; i++) { var tdplus = document.createElement('td');//新建一个单元格 if(i<=3){ tdplus.innerHTML = 123; }else{ var btn =document.createElement("button"); btn.innerHTML ="删除"; tdplus.appendChild(btn); btn.onclick = function(){ btn.parentNode.parentNode.remove(); } } trplus.appendChild(tdplus);//将新建的td添加到tr中 } tab1.appendChild(trplus);//将新建的tr添加到table中 } }
结果例子显示:
例子2:
html代码::
姓名:<input id="mingzi" type="text" placeholder="必填"> 年龄:<input id="age" type="text" placeholder="必填"> <button onClick="add()">添加一行</button>//添加按钮 <button onClick="color()">隔行变色</button> <button onClick="yrbs()">移入变色</button> <table width="1000" border="1"> <tr> <th>ID</th> <th>姓名</th> <th>年龄</th> <th>操作</th> </tr> </table>
js代码:
var tab=null;//获取表格 var tr_push=[];//添加行 var td_push=[];//添加单元格 var namedom=null;//添加姓名 var agedom=null;//添加年龄 var tr = null;// var th = null; window.onload = function () { tab=document.getElementsByTagName("table")[0];//获取表格 tr=document.getElementsByTagName("tr"); th=document.getElementsByTagName("th"); namedom=document.getElementById("mingzi"); agedom=document.getElementById("age"); } //功能:添加行 function add(){ tr_push = document.createElement("tr");//创建<tr>标签 for (var i = 0; i < th.length; ++i) { //第一列的内容ID,排序,为tr的长度 if (i == 0) { td_push = document.createElement("td"); td_push.innerHTML = tr.length; } //第二列的内容姓名,为提取姓名框的内容 if (i == 1) { td_push = document.createElement("td"); td_push.innerHTML = namedom.value; } //第三列的内容年龄,为提取年龄框的内容 if (i == 2) { td_push = document.createElement("td"); td_push.innerHTML = agedom.value; } //第四列,删除按钮 //将一个button标签作为i=3的内容 //点击时,调用方法删除 if (i == 3) { td_push = document.createElement("td"); td_push.innerHTML = "<button onClick='shan(this)'>删除</button>"; } tr_push.appendChild(td_push);//将新建td添加到tr中 } tab.appendChild(tr_push); //将新建tr添加到tab中 } /*功能:删除行*/ function shan(obj) { obj.parentNode.parentNode.remove(); //移除button所在标签的父标签的父标签(tr) } /*功能:隔行变色*/ function color(){ for(var i = 0; i < tr.length; i=i+2){ //隔行变色,所以 i=i+2 tr[i].style.background = "red"; //给tr添加样式background } } /*鼠标移入变色 移出变回原色*/ function yrbs(){ for(var i =0;i<tr.length;i++){ tr[i].setAttribute('onMouseOver','cl(this,"")'); //鼠标放上时,调用方法cl() tr[i].setAttribute('onMouseOut','cl(this,"out")'); //鼠标移开时,调用方法cl() ,加参数"out" } } function cl(obj,type){ //定义this=obj,实参type for(var i =0;i<tr.length;++i){ tr[i].style.backgroundColor = "white"; //先把所有的定义为白色 } if(type != "out"){ //当type不等于out时,该行变绿色 obj.style.backgroundColor = "green"; } }
结果
隔行变色
移入变色
例子3:
html代码:
<button onClick="addTr()">添加一行</button> <table id="tab" width="100%" border="1" cellpadding="0" cellspacing="0"> <tr> <th>编号</th> <th>姓名</th> <th>性别</th> <th>年龄</th> <th>操作</th> </tr> <tr> <td>1</td> <td>张三</td> <td>男</td> <td>20</td> <td> <button onClick="delTr(this)">删除</button> </td> </tr> </table>
js代码:
var tab = null; //表格对象 var dataArr = [ [2,"李四","男","12"], [3,"李四3","男","12"], [4,"李四","男","12"], [5,"李四","男","12"] ]; window.onload = function(){ initVal(); addTr(); delTr(); } function initVal(){ tab = document.getElementById('tab'); } function addTr(){ var tt = new Date(); var trDom = document.createElement('tr'); trDom.setAttribute('data',tt.getTime()); //获得th长度 得到循环次数 var tdLength = document.getElementsByTagName('th').length; for(var i =0;i<(tdLength-1);++i){ var tdDom = document.createElement('td'); tdDom.innerHTML = dataArr[1][i]; trDom.appendChild(tdDom); } var tdDom2 = document.createElement('td'); var btnDom = document.createElement('button'); btnDom.innerHTML = "删除"; btnDom.setAttribute('data',tt.getTime()); btnDom.setAttribute('onClick','delTr(this)'); tdDom2.appendChild(btnDom); trDom.appendChild(tdDom2); tab.appendChild(trDom); } //根据时间找元素判断 function delTr(obj){ var zhi = obj.getAttribute('data'); var trArr = document.getElementsByTagName('tr'); for(var i =0;i<trArr.length;++i){ if(trArr[i].getAttribute('data') == zhi ){ trArr[i].remove(); break; } } }
结果:
计算器
html代码:
<input type="text"> <select name="" id=""> <option>+</option> <option>-</option> <option>*</option> <option>/</option> <option>%</option> </select> <input type="text"> <button onclick="jisuan()">=</button> <input type="text" placeholder="结果">
js代码:
var inputs = null;//文本框 var input1 = null;//第一个文本框 var input2 = null;//第二个文本框 var select1 = null;//第一个下拉 var input3 = null;//结果文本框 window.onload = function(){ initVal(); } function initVal(){ select1 = document.getElementsByTagName('select')[0]; inputs = document.getElementsByTagName('input'); input1 = inputs[0]; input2 = inputs[1]; input3 = inputs[2]; } function jisuan(){ input3.value = eval(input1.value + select1.value + input2.value); }
结果演示:
全选,全不选,反选:
html代码:
<!--全选全不选--> <p id="inputs"> <input type="checkbox"> <input type="checkbox"> <input type="checkbox"> <input type="checkbox"> <input type="checkbox"> </p> <button onClick="qxqbx(true)">全选</button> <button onClick="qxqbx(false)">全不选</button> <button onClick="fx()">反选</button>
js代码:
var inputs = []; window.onload = function(){ inputs = document.getElementById('inputs').getElementsByTagName('input'); } function qxqbx(flag){ /*找到复选框 找到选中状态 设为选中*/ for(var i =0;i<inputs.length;++i){ inputs[i].checked = flag; } } function fx(){ for(var i =0;i<inputs.length;++i){ if(inputs[i].checked == true){ inputs[i].checked = false; }else{ inputs[i].checked = true; } } }