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

为什么新加的行无法删除?

     function addt(){
        var tbody=document.getElementById("table").lastChild;
        var tr=document.createElement("tr");

        var td=document.createElement("td");
        var ip=document.createElement("input");
        ip.type="text";
        td.appendChild(ip);
		tr.appendChild(td);
		 
		var td = document.createElement("td");	 
        var ip=document.createElement("input");
        ip.type="text";
		td.appendChild(ip);
		tr.appendChild(td);
		 
		var td = document.createElement("td");	
        var a=document.createElement("a");
        a.href="javascript:;" 
        a.onclick=function(){"dele(this)"};
        a.innerHTML="删除";
        td.appendChild(a);
        tr.appendChild(td);
        
        tbody.appendChild(tr);
       Highlight(); 
     }
<td><a href="javascript:;" onclick="dele(this)">删除</a></td>


正在回答

3 回答

a.onclick=function(){"dele(this)"};

这一句吗,事件这是函数表达式的写法,后面都是跟匿名函数,然后在函数内在进行调用;如果写成a.onclick=dele(this);相当于不需要点击直接调用dele函数,然后this指向window


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

刘毅毅 提问者

哦。似懂非懂了
2016-11-13 回复 有任何疑惑可以回复我~
#2

刘毅毅 提问者

多说一句,免得我误导了别人。我这样写a.onclick=function(){"dele(this)"};在网页运行不了,去掉dele(this)外面的引号才可以,应该是大括号里直接写函数就行。
2016-11-13 回复 有任何疑惑可以回复我~
#3

stone310 回复 刘毅毅 提问者

是的,js中调用不能加引号,否则变字符串了;而html标签上需要引号,如果没加引号,系统会帮你补上引号,因为html的格式所决定
2016-11-13 回复 有任何疑惑可以回复我~
#4

刘毅毅 提问者 回复 stone310

这样啊,谢谢,初学应该视频和书一起看,最好还有个老师,要不有些细节地方就走弯路
2016-11-13 回复 有任何疑惑可以回复我~
查看1条回复

我发现去掉dele(this)的引号就可以了。不知道为什么不能直接写a.onclick="dele(this)";?

0 回复 有任何疑惑可以回复我~

dele()这个函数内,没放出来

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

刘毅毅 提问者

我发现去掉dele的引号就可以了。好像这样定义a.onclick的话需要有function(){},原因不明
2016-11-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么新加的行无法删除?

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