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

这里为什么一定要用this?

 $(".left").append($(this).clone().css("color","red"))

我用 $(".left").append($(".aaron1").clone().css("color","red"))为什么不可以

正在回答

2 回答

这个是可以的,只是如果你这样写的话,再点击一次就会出现两个,再点击一个就会出现4个,因为它把第一次克隆的也再克隆了一遍。。如果不行,你可以先试着改一下其他代码,再改回来,可能是浏览器卡了。

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

慕粉15680718726 提问者

那可能是卡了,说的很明白,感谢
2016-08-28 回复 有任何疑惑可以回复我~
#2

慕仰6432972 回复 慕粉15680718726 提问者

补充一下,上面这个朋友说的是对的,但是还有个小问题,为什么你点一下是一个,点第二下变成克隆两个了呢? this在这里不仅仅是指代aaron1它还有一层意思是指代,onclick这个行为下的aaron1,如果你只用aaron1,那么得到的结果会是错的,因为从第二次点击开始,class=aaron1的元素变成了两个,那么这时候就复制两个并添加到div里面,第三次点击就变成了8个,以此类推。但是你要达到的效果是每次点击就克隆一个,所以需要用this表明我要复制的是这个我附加了点击事件的class=aaron1的元素,而不是所有的class=aaron1的元素
2016-09-04 回复 有任何疑惑可以回复我~
#3

慕函数5962187 回复 慕仰6432972

解释的很好,按照这样我去试了一下跟题主出现相同的问题,并没有呈现效果 $(".aaron1").on('click',function(){ $(".left").append( $(".arron1").clone().css('color','red')) }) 代码是这样请问哪里错了呢
2017-02-01 回复 有任何疑惑可以回复我~
#4

慕函数5962187 回复 慕仰6432972

不过我试了下也是浏览器没有效果
2017-02-01 回复 有任何疑惑可以回复我~
#5

慕仰6432972 回复 慕函数5962187

你写错了啊 你上面是aaron1 下面变成了arron2
2017-02-04 回复 有任何疑惑可以回复我~
查看3条回复

因为函数前面$("li"),所以这里的this指代的li,所以element指代的也是li,所以this同样可以用element替换

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

举报

0/150
提交
取消

这里为什么一定要用this?

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