问答详情
源自:9-22 编程练习

代码错误了

为什么删除不了第一行,点击第一个删除而把第二行给删除了

提问者:汾汾学前端 2015-10-28 09:53

个回答

  • 出世Sunny
    2015-10-29 23:59:25

    因为你错误使用了lastChild,导致每次调用deletetr()函数时都自动定位到table的最后一个子节。另外deletetr()函数的参数obj你根本没使用,obj在这个函数里的意思表示<a>这个元素节点,所以建议自己把写的代码再捋一捋,看看每个节点对象分别是谁,附改进版。


    function deletetr(obj){
                var node=obj.parentNode.parentNode;          
                node.parentNode.removeChild(node);  //这里不是多次一举,node是需要删除的对象,通过parentNode先找到父辈,然后删除。
            }

    <!--对应onclick要加 this 关键词,不然函数不知道调用的对象-->

        <tr>
            <td>xh001</td>
            <td>王小明</td>
            <td><a href="javascript:;" onclick="deletetr(this)">删除</a></td>   <!--在删除按钮上添加点击事件  -->
         </tr>