为了账号安全,请及时绑定邮箱和手机立即绑定

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

<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 回答

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

1 回复 有任何疑惑可以回复我~
#1

qq_慕函数2369942

这个例子我有几个疑惑,不知道老哥能否给我解答一下 1.obj(this)为什么代表的是a标签? 2.设置鼠标移入移出时的代码中obj又是哪里来的?代表什么意义(我知道它是函数的参数)?
2019-04-10 回复 有任何疑惑可以回复我~
#2

iam16 回复 qq_慕函数2369942

this是指这个对象的意思 在a标签中用当然指的就是当前标签 obj的所有对象的集合 然后一般函数中习惯用obj作为参数 方便使用
2019-08-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信