为啥非要加上this才有用啊?

 <script>
 function del(obj){
        var tbody=document.getElementById("table").lastChild
        var tr = obj.parentNode.parentNode;
        tbody.removeChild(tr)}
</script>
<body>
<table>
 <tr>
 <td>小敏</td>
  <td><a href="javascript:;" onclick="del(this)" >删除</a></td>   <!--在删除按钮上添加点击事件  -->
</tr>
</table>
</body>

比如这段代码,删除一整行,必须写“del(this)”才有效果,如果只写

onclick="del()"

则不起作用,这是为啥啊?

慕用7797256
浏览 2168回答 4
4回答

慕少3518815

声明函数的时候,obj是你的形参,obj只是一个变量,没有具体的值,值为undefined;如果你没有传实参;即你没有this实参的时候,你的代码执行结果是 var tr = undefined.parentNode.parentNode;当你传递实参:this 的时候,你的代码指向结果是:var tr = this.parentNode.parentNode;

Viavia

 del函数用到了obj这个参数,你当然要传, 你还是先看基础视频吧

Jenny_xiong

你在方法里面使用了传参的参数,如果没使用也不会报错,this指代的是当前调用这个函数的对象

半枯

你的js代码del(obj)本身就需要参数传入,this指当前对象。你可以修改你定义的方法

慕婉清5044891

ZBKHXUKYUKUBXTCTIQAPMVOCRHQMIXNROAQZWSORLBRNUEGJXNWZILHFZIEUXNWSIYSUKHWNQZPLOLUWMAJFIYIREMBYHDSUKNDDNIMCRBDTQYDSVRNQNCYIYYHJSZWMHEHXEOQGVEBKHQTPFBQAQSORNBPLBRFOXMVFIORTDNQTPSVXLTPQMVXNJZBIDGDZVRMILNXMBEZPYORHWCEIXNPKGJACUEGQKAQGCYPUOXGWLIEOQGHQSBYUWFOKZBXZVEHKMPSOJSBXMQMOKNINPLHDLNPFBKIDSOXGQMBRHLTVSHWYAWXNBCXODMCYAJMCEHJFIRVEGBFHJMUKTPLBWDMHILUXZIENXAPYGCFVEAJSBQSBETIEHDHQTNKVKAWNWXTPLOPLBRAJFOKHQNWFIFOHPFOKTWYVKVWQSPRHDMIFUBQGQAWMVEOEVETWTJSBRABSOOKNILNCMBQZOXYTDYHKZFOJFIKAQGVGUWSBDXGIYHDHQZVXGILHJMNBXEXTNUABVSBIYHXNWYORWXUQGWKHDZPUJAPMCYBXUDCMAJFCTWMCMTJRAQMORTJFCXZIDZVRTJSUQAPYBCRNJLMIQMCXACKNOFUWTOENKFVEEMBXTPQZVXUNVXUWGOYBQYTVEHPFVKZCTMVETCLBXUDZYHQGCLYODUJUQLVKMVXTIYVRZJMOJTIKGODZOKHWTISOGBXGPETJENQYHDMBLGCYAQKMPYGPFVQHWEAWFOKZILZJZOQOKGWLOXMUKSHXGQFORUFODFOPYBKNDIWRAWMOKZVEYTIFOXTCEAQHDFBEGVXAJGXMWZVDPPCBPEUPYUDTUKGVGIETJLUBEADUWSJEACYBYHPRMCEUKSVXLTIXNPFVXSUK
打开App,查看更多内容
随时随地看视频慕课网APP