哪位大神能告诉我一下这里为什么不加this就删除不了行呢

来源:9-22 编程练习

weibo_謝楊暘要飞到温暖的南_0

2019-03-15 17:32

<td><a href="javascript:;" onclick="del(this)" >删除</a></td> //这一句里不加this点击删除无反应,加了就可以运行了

完整代码如下:
<!DOCTYPE html>
<html>
<head>
    <title> new document </title>
    <meta http-equiv="Content-Type" content="text/html; charset=gbk"/>
    <script type="text/javascript">

        window.onload = function(){
            var trs=document.getElementsByTagName("tr");
            for (var i=0;i<trs.length;i++){
                change(trs[i]);

            }};
            // 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。
            function change(obj){
                obj.onmouseover=function mouseover(){
                    obj.style.backgroundColor="#f2f2f2";
                };
                obj.onmouseout=function mouseout(){
                    obj.style.backgroundColor="#fff";
                }}

        // 编写一个函数,供添加按钮调用,动态在表格的最后一行添加子节点;
        var num=2;
        function addTr(){
            num++;
            var newTr=document.createElement("tr");
            var td1= document.createElement("td");
            var td2= document.createElement("td");
            var td3= document.createElement("td");
            td1.innerHTML="xh00"+num;
            td2.innerHTML="No."+num;
            td3.innerHTML=document.getElementsByTagName("td")[2].innerHTML;
            newTr.appendChild(td1);
            newTr.appendChild(td2);
            newTr.appendChild(td3);
            document.getElementById("table").appendChild(newTr);

            var tr = document.getElementsByTagName("tr");

            for(var i= 0;i<tr.length;i++) {
                change(tr[i]);
            }}


        // 创建删除函数
        function del(obj){
          var addTr=obj.parentNode.parentNode;
          addTr.parentNode.removeChild(addTr);
        }



    </script>
</head>
<body>
<table border="1" width="50%" id="table">
    <tr>
        <th>学号</th>
        <th>姓名</th>
        <th>操作</th>
    </tr>

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

    <tr>
        <td>xh002</td>
        <td>刘小芳</td>
        <td><a href="javascript:;" onclick="del(this)" >删除</a></td>   <!--在删除按钮上添加点击事件  -->
    </tr>

</table>
<input type="button"onclick="addTr()" value="添加一行"  />   <!--在添加按钮上添加点击事件  -->
</body>
</html>


写回答 关注

1回答

  • 瑞吉自闭了
    2019-03-17 09:52:00

    function del(obj) 里面是有参数的,调用的时候也必须由参数,而this在此指的本身即a标签

    iam16 回复qq_慕函数...

    this是指这个对象的意思 在a标签中用当然指的就是当前标签 obj的所有对象的集合 然后一般函数中习惯用obj作为参数 方便使用

    2019-08-23 11:15:08

    共 2 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468191 学习 · 21891 问题

查看课程

相似问题