關於js對表格進行逐行添加,今天抽空整理了一下:新建一個html檔案(沒有編輯器的可以新建一個demo.txt文件,然後改後綴名為demo.html),把下面程式碼全部貼進去即可。
功能包括:表格新增一行,表格刪除一行,表格遍歷取值等。
點選說明:點選新增按鈕,表格新增一行,可進行錄入,刪除按鈕,可刪除目前行,其他行不影響。刪除或新增,每行的編號都會自動變化,套餐和價格是,內容是
<textarea></textarea>,
點擊儲存按鈕的時候,遍歷表格中所有行,把所有行的資料取出來彈框彈出展示,後期可依需求傳遞到後台進行處理。
效果圖:
#原始碼:
<!-- Creator: WangPeng CreateTime : 2018-01-25 去年今日此门中,人面桃花相映红。 人面不知何处去,桃花依旧笑春风。 --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>动态增加表格</title> </head> <style> td /*设置表格文字左右和上下居中对齐*/ { vertical-align: middle; text-align: center; padding: 9px; } textarea{ min-height: 60px; min-width: 200px; } </style> <script type="text/javascript"> function del(obj){ if(document.getElementById('tbodyid').children.length>1){ var trid=obj.parentNode.parentNode.id; var objtr=document.getElementById(trid); document.getElementById('tbodyid').removeChild(objtr); var tbody=document.getElementById('tbodyid'); var countchildren=tbody.childElementCount; for (var i=0;i<countchildren;i++){ tbody.children[i].children[0].innerHTML=i+1; } } else{ alert("请不要全部删除"); } } function add(){ var trid = new Date().getTime(); var packageid=trid+'packageid'; var countid=trid+'countid'; var priceid=trid+'priceid'; var objtr=document.createElement('tr'); objtr.id=trid; objtr.innerHTML="<td></td> " + " <td><input id='"+trid+"packageid'></td> " + " <td><textarea id='"+trid+"countid'></textarea></td> " + " <td><input id='"+trid+"priceid'></td> " + " <td><button type='button' onclick='del(this)'>删除</button></td>"; document.getElementById("tbodyid").appendChild(objtr); var tbodyobj=document.getElementById('tbodyid'); var countchildren=tbodyobj.childElementCount; for (var i=0;i<countchildren;i++){ tbodyobj.children[i].children[0].innerHTML=i+1; } } function save(){ var tbodyobj=document.getElementById('tbodyid'); var countchildren=tbodyobj.childElementCount; var trid=""; var packageid=""; var countid=""; var priceid=""; var list=new Array(); for (var i=0;i<countchildren;i++){ trid=tbodyobj.children[i].id; packageid=trid+"packageid"; countid=trid+"countid"; priceid=trid+"priceid"; var map={ "套餐":document.getElementById(packageid).value, "内容":document.getElementById(countid).value, "价格":document.getElementById(priceid).value } list.push(map); } console.log("list:",list); alert(JSON.stringify(list)); } </script> <body> <p> <p style="width: 80%;margin: 10%"> <table border="1" bordercolor="#a0c6e5" style="border-collapse:collapse;" align="center" width="100%"> <caption>动态增加表格</caption> <thead> <tr> <th width="5% ">序号</th> <th width="20%">套餐</th> <th width="30%">内容</th> <th width="10%">价格</th> <th width="10%">操作</th> </tr> </thead> <tbody id="tbodyid"> <tr id="123"> <td>1</td> <td><input id="123packageid"></td> <td><textarea id="123countid"></textarea></td> <td><input id="123priceid"></td> <td><button type="button" onclick='del(this)'>删除</button></td> </tr> </tbody> </table> <button type="button" onclick='add()'>添加</button> <button type="button" onclick='save()'>保存</button> </p> </p> </body> </html>
js動態產生其他的也同理,可根據自己需要在指定位置創建自己所需的元素。
相關推薦:
以上是js動態逐行新增、刪除、遍歷取值的詳細內容。更多資訊請關注PHP中文網其他相關文章!