JS表格的動(dòng)態(tài)操作完整示例
本文實(shí)例講述了JS表格的動(dòng)態(tài)操作。分享給大家供大家參考,具體如下:
<html>
<head>
<title>js-表格的動(dòng)態(tài)操作</title>
<meta charset="UTF-8"/>
<style type="text/css">
#ta tr{
height: 20px;
}
#t1{
font-weight: bold;
/*align-content: center;*/
/*不能設(shè)置文本內(nèi)容居中*/
}
</style>
<script type="text/javascript">
function delectOper(btn){
//獲取table對(duì)象,我們用其進(jìn)行其對(duì)子元素的操作
var ta=document.getElementById("ta")
//獲取其父類對(duì)象
var tr=btn.parentNode.parentNode; //我們進(jìn)行刪除操作是刪除其所在的行,所以我們用兩次parent操作,第一層得到其所在的列(單元格),再進(jìn)一層得到其所在的行對(duì)象
//執(zhí)行刪除操作
ta.deleteRow(tr.rowIndex); //進(jìn)行刪除操作時(shí),我們用父類對(duì)象刪除子類對(duì)象,
//注:對(duì)于div等對(duì)象我們可以使用remove方法,但是對(duì)于表格的屬性我們利用delete進(jìn)行操作,而且我們利用他的rowIndex(行號(hào))而不是其id亦或是對(duì)象
//我們沒法對(duì)每一個(gè)行設(shè)置一個(gè)id所以用這種方法(通過調(diào)入對(duì)象找到其父類對(duì)象)更加的方便
}
function changeOper(n){
// var n=n;
//獲取修改的位置對(duì)象
var cell=document.getElementById("cell"+n);
//進(jìn)行一定的限制(只有是數(shù)字的情況下才能進(jìn)行拼接)
if(!isNaN(Number(cell.innerHTML))){//isNAN如果是true則表示數(shù)值不是數(shù)字,如果不添加就會(huì)產(chǎn)生連續(xù)點(diǎn)擊修改時(shí)出現(xiàn)把源碼拼接上的情況
//修改對(duì)象的類型
cell.innerHTML="<input type='text' value='"+cell.innerHTML+"' onblur='changeOper2(this,this.parentNode)'/>" //利用value='"+cell.innerHTML+"'可以實(shí)現(xiàn)內(nèi)容的拼接注意:其內(nèi)部的值是"+cell.innerHTML+"一個(gè)拼接量
//注意格式:在""內(nèi)部的要用'', //不知道為什么在內(nèi)部不能直接把cell和n當(dāng)參數(shù)傳出去,但是可以傳this對(duì)象,所以對(duì)應(yīng)的我們利用this,簡介傳出其父對(duì)象
} //還有一個(gè)bug:當(dāng)用戶輸入的值是字符(不是數(shù)字),其也會(huì)進(jìn)行value的賦值,但是無法再觸發(fā)修改按鍵,只能檢索原對(duì)象的內(nèi)容類型,無法檢索用戶的
}
function changeOper2(inp,cell){
//獲取修改位置對(duì)象
// var cell=document.getElementById("cell"+n);
//修改對(duì)象的類型
cell.innerHTML=inp.value; //通過對(duì)象獲得用戶修改獲得value值
}
//明白了:document可以調(diào)用任何的id,(好比其他都是全局變量一樣),但是他的局限是獲取的方法有限,必須有特定的屬性才能獲取
//document。innerHTML是對(duì)其內(nèi)部的內(nèi)容進(jìn)行重寫。
</script>
</head>
<body>
<h3 align="center">表格的動(dòng)態(tài)操作</h3>
<hr />
<table border="1px" id="ta" align="center"> <!--align可以直接把整個(gè)表格居中-->
<tr id="t1" align="center">
<td width="200px">Animation</td>
<td width="100px">上映年份</td>
<td width="100px">評(píng)分(10分)</td>
<td width="200px">投幣</td>
<td width="200px">操作</td>
</tr>
<tr align="center">
<td>clannad</td>
<td>2008</td>
<td>9.9</td>
<td id="cell2">100</td>
<td>
<input type="button" name="" id="" value="修改" onclick="changeOper(2)"/>
<input type="button" name="" id="" value="刪除" onclick="delectOper(this)"/>
</td>
</tr>
<tr align="center">
<td>月色真美</td>
<td>2017</td>
<td>9.4</td>
<td id="cell3">70</td>
<td>
<input type="button" name="" id="" value="修改" onclick="changeOper(3)"/>
<input type="button" name="" id="" value="刪除" onclick="delectOper(this)"/>
</td>
</tr>
<tr align="center">
<td>境界的彼方</td>
<td>2013</td>
<td>9.4</td>
<td id="cell4">60</td>
<td>
<input type="button" name="" id="" value="修改" onclick="changeOper(4)"/>
<input type="button" name="" id="" value="刪除" onclick="delectOper(this)"/>
</td>
</tr>
</table>
</body>
</html>
運(yùn)行效果:

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行效果。
更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《JavaScript操作DOM技巧總結(jié)》、《JavaScript頁面元素操作技巧總結(jié)》、《JavaScript事件相關(guān)操作與技巧大全》、《JavaScript查找算法技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
如何實(shí)現(xiàn)一個(gè)webpack模塊解析器
這篇文章主要介紹了如何實(shí)現(xiàn)一個(gè)webpack模塊解析器,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-10-10
JavaScript實(shí)現(xiàn)表單驗(yàn)證功能
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)表單驗(yàn)證功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12
javascript Xml增刪改查(IE下)操作實(shí)現(xiàn)代碼
比較不錯(cuò)的實(shí)現(xiàn)代碼,大家可以仔細(xì)的看下,思路。2009-01-01
html5 canvas js(數(shù)字時(shí)鐘)實(shí)例代碼
這篇文章主要介紹了html5 canvas js(數(shù)字時(shí)鐘)實(shí)例代碼,有需要的朋友可以參考一下2013-12-12
JS實(shí)現(xiàn)模仿微博發(fā)布效果實(shí)例代碼
這篇文章主要介紹了JS實(shí)現(xiàn)模仿微博發(fā)布效果實(shí)例代碼,有需要的朋友可以參考一下2013-12-12
Js+Dhtml:WEB程序員簡易開發(fā)工具包(預(yù)先體驗(yàn)版)
Js+Dhtml:WEB程序員簡易開發(fā)工具包(預(yù)先體驗(yàn)版)...2006-11-11

