「已注销」 2020-11-24 10:20 采纳率: 0%
浏览 83

js无法删除默认行,与不能删除最后一行的问题?求解答

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Document</title>

    <style type="text/css">

        td{

            text-align: center;

        }

    </style>

    <script type="text/javascript">

    window.onload=function(){

        var oTable = document.getElementById('table');

        var oButton = document.getElementById('button');

        var oName = document.getElementById('name');

        var oAge = document.getElementById('age');

        

        var n=oTable.tBodies[0].rows.length+1;

        // console.log(n)

        oButton.onclick=function(){

           

           var oTr=document.createElement('tr');

           var oTd=document.createElement('td');

           oTd.innerHTML=n++;

        //    console.log(oTable.tBodies[0].rows[1].cells[0])

           oTr.appendChild(oTd);

 

           var oTd=document.createElement('td');

           oTd.innerHTML=oName.value;

           oTr.appendChild(oTd);

 

           var oTd=document.createElement('td');

           oTd.innerHTML=oAge.value;

           oTr.appendChild(oTd);      

 

           var oTd=document.createElement('td');

           oTd.innerHTML='<a href="javascript:;">删除</a>';

           oTr.appendChild(oTd);  

 

           var aA=document.getElementsByTagName('a');

          

           //存在一个未解决的BUG。无法删除最后一条

           //存在一个未解决的BUG。必须要先添加一行,才能删除默认的行

           for (var i = 0; i < aA.length; i++) {

               aA[i].onclick=function(){

                  console.log(i+"<"+aA.length);

                  oTable.tBodies[0].removeChild(this.parentNode.parentNode);

               }

           }

    


 

         oTable.tBodies[0].appendChild(oTr);

 

        };

    

 

    };

    </script>

</head>

<body>

    姓名:<input type="text" id="name">

    年龄:<input type="text" id="age">

    <input type="button" id="button" value="添加">

    <table id="table" border='1' width="500">

        <thead>

            <tr>

                <td>ID</td>

                <td>姓名</td>

                <td>年龄</td>

                <td>操作</td>

            </tr>

        </thead>

        <tbody>

            <tr>

                <td>1</td>

                <td>张三</td>

                <td>15</td>

                <td><a href="javascript:;">删除</a></td>

            </tr>

            <tr>

                <td>2</td>

                <td>李四</td>

                <td>12</td>

                <td><a href="javascript:;">删除</a></td>

            </tr>

            <tr>

                <td>3</td>

                <td>王五</td>

                <td>54</td>

                <td><a href="javascript:;">删除</a></td>

            </tr>

            <tr>

                <td>4</td>

                <td>赵六</td>

                <td>19</td>

                <td><a href="javascript:;">删除</a></td>

            </tr>

            <tr>

                <td>5</td>

                <td>孙七</td>

                <td>26</td>

                <td><a href="javascript:;">删除</a></td>

            </tr>

            <tr>

                <td>6</td>

                <td>周八</td>

                <td>29</td>

                <td><a href="javascript:;">删除</a></td>

            </tr>

            <tr>

                <td>7</td>

                <td>吴九</td>

                <td>25</td>

                <td><a href="javascript:;">删除</a></td>

            </tr>

        </tbody>

    </table>

</body>

</html>

  • 写回答

1条回答 默认 最新

  • 禅思院 前端领域优质创作者 2020-11-24 17:56
    关注
    <!DOCTYPE html>
    
    <html lang="en">
    
    <head>
    
    	<meta charset="UTF-8">
    
    	<title>Document</title>
    
    	<style type="text/css">
    		td {
    			text-align: center;
    
    		}
    	</style>
    
    	<script type="text/javascript">
    	function remove (e) {
    		var oTable = document.getElementById('table');
    		if (oTable.getAttribute('data-type')) {
    			var parent = e.parentNode.parentNode.parentNode
    			parent.removeChild(e.parentNode.parentNode)
    		} else {
    			alert('只有新增之后才能删除')
    		}
    	}
    		window.onload = function () {
    			var oTable = document.getElementById('table');
    			var oButton = document.getElementById('button');
    			var oName = document.getElementById('name');
    			var oAge = document.getElementById('age');
    			var n = oTable.tBodies[0].rows.length + 1;
    			oButton.onclick = function () {
    				var oTr = document.createElement('tr');
    				var oTd = document.createElement('td');
    				oTd.innerHTML = n++;
    				oTr.appendChild(oTd);
    				var oTd = document.createElement('td');
    				oTd.innerHTML = oName.value;
    				oTr.appendChild(oTd);
    				var oTd = document.createElement('td');
    				oTd.innerHTML = oAge.value;
    				oTr.appendChild(oTd);
    				var oTd = document.createElement('td');
    				oTd.innerHTML = '<a data-type="1" href="#" onclick="remove(this)">删除</a>';
    				oTr.appendChild(oTd);
    				oTable.setAttribute('data-type',1)
    				var aA = document.getElementsByTagName('a');
    				//存在一个未解决的BUG。无法删除最后一条
    				//存在一个未解决的BUG。必须要先添加一行,才能删除默认的行
    				for (var i = 0; i < aA.length; i++) {
    					aA[i].onclick = function () {
    						console.log(i + "<" + aA.length);
    						oTable.tBodies[0].removeChild(this.parentNode.parentNode);
    					}
    				}
    				oTable.tBodies[0].appendChild(oTr);
    			};
    		};
    
    	</script>
    
    </head>
    
    <body>
    
    	姓名:<input type="text" id="name">
    
    	年龄:<input type="text" id="age">
    
    	<input type="button" id="button" value="添加">
    
    	<table id="table" border='1' width="500">
    
    		<thead>
    
    			<tr>
    
    				<td>ID</td>
    
    				<td>姓名</td>
    
    				<td>年龄</td>
    
    				<td>操作</td>
    
    			</tr>
    
    		</thead>
    
    		<tbody>
    
    			<tr>
    
    				<td>1</td>
    
    				<td>张三</td>
    
    				<td>15</td>
    
    				<td><a href="#" onclick="remove(this)">删除</a></td>
    
    			</tr>
    
    			<tr>
    
    				<td>2</td>
    
    				<td>李四</td>
    
    				<td>12</td>
    
    				<td><a href="#" onclick="remove(this)">删除</a></td>
    
    			</tr>
    
    			<tr>
    
    				<td>3</td>
    
    				<td>王五</td>
    
    				<td>54</td>
    
    				<td><a href="#" onclick="remove(this)">删除</a></td>
    
    			</tr>
    
    			<tr>
    
    				<td>4</td>
    
    				<td>赵六</td>
    
    				<td>19</td>
    
    				<td><a href="#" onclick="remove(this)">删除</a></td>
    
    			</tr>
    
    			<tr>
    
    				<td>5</td>
    
    				<td>孙七</td>
    
    				<td>26</td>
    
    				<td><a href="#" onclick="remove(this)">删除</a></td>
    
    			</tr>
    
    			<tr>
    
    				<td>6</td>
    
    				<td>周八</td>
    
    				<td>29</td>
    
    				<td><a href="#" onclick="remove(this)">删除</a></td>
    
    			</tr>
    
    			<tr>
    
    				<td>7</td>
    
    				<td>吴九</td>
    
    				<td>25</td>
    
    				<td><a href="#" onclick="remove(this)">删除</a></td>
    
    			</tr>
    
    		</tbody>
    
    	</table>
    
    </body>
    
    </html>
    评论

报告相同问题?

悬赏问题

  • ¥15 有偿求码,CNN+LSTM实现单通道脑电信号EEG的睡眠分期评估
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路