麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

原生javaScript做得動態表格(注釋寫的很清楚)

2019-11-20 21:21:08
字體:
來源:轉載
供稿:網友
最近看了3本o'reilly的書,我們一般稱為禽獸書(跟我一同學的名字很像大笑),然后一直想做一個列子來練練手,因為看公司好多用動態表格的,所以,我就試著用js做了動態表格,用firfox瀏覽器來調試的,因為firbug插件用著比較好,本來就是想實現一個很小的功能,沒想做那么多,就點擊按鈕能夠增加一行就行了,后來越加越多,也越來越好看了。把源碼貼出來,大家共同學習,有問題也可以指正出來,js初學者,忘大神筆下留情。

ps:不知道上面為什么不顯示行號,好久沒用了。 注釋寫的很清楚,大家共同學習。

復制代碼 代碼如下:

<span style="font-size:18px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>動態表格</title>
<style type="text/css">
body{ background-color:#9CC; text-align:center}
table{ margin:10px auto;}
tr th { border: 1px solid #096;}
td{border: 1px solid #096;}
</style>
<script type="text/javascript">
/*在函數的外部只能聲明一些變量之類的,不能用操作方法,因為沒有函數去調用執行它。*/

//在載入頁面的時候就在表格頭放入選擇框,因為是一次性的
window.onload = function(){
var tab = document.getElementById('tab');
var firsttr = document.getElementsByTagName('tr')[0];
var childtd = firsttr.childNodes;
//在第一行第一列上加入選擇框
var inp = document.createElement('input');
inp.type = 'checkbox';

//DOM Leve 2 事件注冊
catchEvent(inp,'click',function(){ //注冊函數 不同狀態進行判斷
if(inp.checked ==true){
allSelect();
}else{
cancelSelect();
}
});
//catchEvent(inp,'click',allSelect);
//catchEvent(inp,'change',cancelSelect);
childtd[0].appendChild(inp);

}

//增加一行
//var count =0;//增加一列用來 計數
function addRow(){
//count++;
var tab = document.getElementById('tab');
var firsttr = document.getElementsByTagName('tr')[0];
var childtd = firsttr.childNodes;
var tr = document.createElement('tr');
var arrtd = new Array();
var arrinp = new Array();
for(var i =0;i<childtd.length;i++){
arrtd[i] = document.createElement('td');
arrinp[i] = document.createElement('input');
if(i==0){
arrinp[i].type = 'checkbox';
arrinp[i].name = 'selectbox';
}else if(i==1){
//arrinp[i] = document.createTextNode(count);
arrinp[i] = document.createTextNode('');
}
arrtd[i].appendChild(arrinp[i]);//思考為什么 input也要加上數組。
tr.appendChild(arrtd[i]);
}

tab.appendChild(tr);
newSort();
}
//刪除操作
function deleteRow(){
var parentTr = new Array();//先把被選中的行放在一個數組上
var box = document.getElementsByName('selectbox');
var tab = document.getElementById('tab');
for(var i = 0;i<box.length;i++){
if(box[i].checked==true){
var parent = box[i].parentNode;
parentTr[i] = parent.parentNode;//如果直接這種為放在里面為什么不能完全刪除??是因為反應不夠嗎?
//tab.removeChild(parentTr);
}
}
for(var i = 0;i<parentTr.length;i++){ //這樣做才能把選中的全部刪除
if(parentTr[i]){ //這邊要先判斷一下是否為空值,如果不為空才去移除,否者會報錯。
tab.removeChild(parentTr[i]);
}
}
newSort();
}

//如果執行刪除的話則,重新進行排序
function newSort(){
var text = new Array();
var child_td = new Array();
var arr_tr = document.getElementsByTagName('tr');
for(var i = 1;i<arr_tr.length;i++){
child_td[i] = arr_tr[i].childNodes[1];//獲得從第二行開始所有第二列的節點
if(child_td[i].childNodes[0]){
child_td[i].removeChild(child_td[i].childNodes[0]);
}
text[i] = document.createTextNode(i);
child_td[i].appendChild(text[i]);

}
}
//全選操作
function allSelect(){
var box = document.getElementsByName('selectbox');
for(var i= 0;i<box.length;i++){
box[i].checked = true;
}
}

//全部取消選擇
function cancelSelect(){
var box = document.getElementsByName('selectbox');
for(var i = 0;i<box.length;i++){
if(box[i].checked == true){
box[i].checked =false;
}
}
}
//事件注冊函數
function catchEvent(eventobj,event,eventHandler){
if(eventobj.addEventListener){
eventobj.addEventListener(event,eventHandler,false);
}else if(eventobj.attachEvent){
event = 'on'+event;
eventobj.attachEvent(event,eventHandler);
}
}

//catchEvent(add,'click',addRow);

</script>
</head>

<body>
<h3>動態表格</h3>
<input type="button" value="增加" id="add" onclick="addRow()" />
<input type="button" value="全部選擇" onclick="allSelect()" />
<input type="button" value="全部取消" onclick="cancelSelect()" />
<input type="button" value="刪除" id="delete" onclick="deleteRow()"/>
<table id="tab" cellpadding="5px" cellspacing="0px">
<tr><td></td><td>序號</td><td>題目一</td><td>題目二</td><td>題目三</td></tr>
</table>
</body>
</html></span>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲成人高清在线观看 | 国产午夜精品一区二区三区在线观看 | 女人叉开腿让男人桶 | 欧美激情视频一区二区免费 | 成年人激情在线 | 国产精品片一区二区三区 | 一区小视频 | 国语自产免费精品视频在 | 91看片淫黄大片欧美看国产片 | 国产人妖一区二区 | 成人艳情一二三区 | 欧美 中文字幕 | 在线播放av片 | 国产激情精品一区二区三区 | www.99xxxx.com| 久久国产一级 | 国产又白又嫩又紧又爽18p | 国产电影av在线 | 日本aⅴ在线 | av免费不卡国产观看 | av免费在线观看国产 | 射逼网站 | 一级做人爱c黑人影片 | 日韩一级免费毛片 | 免费国产在线视频 | 久草在线资源视频 | 深夜福利久久久 | 久久免费视频3 | 日本在线观看视频网站 | 中国成人在线视频 | 一级做a爱片久久毛片a高清 | 日韩视频在线视频 | 国产一区亚洲 | 蜜桃视频网站www | 日韩黄色av网站 | 欧美成人一二三区 | 国产电影av在线 | 国产精品99久久久久久董美香 | 久久国产秒| 亚洲精品无码不卡在线播放he | 欧美日韩视频第一页 |