javascript有时为什么一定要用this?如以下例子。

window.onload=function(){varbut=document.getElementsByTagName('input')for(i=0;i<but.l... window.onload=function()
{
var but=document.getElementsByTagName('input')
for(i=0;i<but.length;i++)
{
but[i].onclick=function()
{
this.className='aaa';
};
};
};
是点以下按钮,就换按钮样式的效果,第六行这里为什么用this可以,用but[i]却不可以呢??它们不都是指被点击的按钮吗?
不是第6行,是第8行那个this
展开
 我来答
羊羊样dhd
2013-01-16
知道答主
回答量:53
采纳率:0%
帮助的人:34万
展开全部
this指的是当前运行函数的对象
追问
但是我这个例子,改用but[i].className='aaa';  而不用this,为什么不行呢,它们不是指同一个对象吗
追答
如果but.length=7的话,第一遍循环出来是没有错的,此时i=7,不满足条件跳出循环,当你再点击时触发下面这个事件,如果写成but[i]的话,就相当于是but[7],这时你是活得不到这个对象的,你的对象只到but[6]
but[i].onclick=function()
{
this.className='aaa';
};
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式