菜鸟就是搞不清 javascript 中的 this 关键字。(高分悬赏)

来源:百度知道 编辑:UC知道 时间:2024/06/14 18:58:36
起因是这样的,我写了一个函数,目的是点击动态改变字体颜色,代码如下:
<script>
function hanshu(){
this.style.color = '#FF0000';
}
</script>

<div onClick="hanshu()" style="color:#993399;">
点我能改变我的颜色
</div>

我知道上面的代码错了,但是不知道错误原因,在网上已经找了好多关于javascript 中 this关键字的解释,,但是可能是我智商的原因,也可能是我对javascript 不甚了解。。看了一下午了,越看越晕。。

就当我是 个 理解能力超级低下 的 大白痴 猪头 吧。。。
请您 最通俗,最易懂 地 帮我解释一下 javascript 中的this 关键字。。。

(网上复制的就免了,因为大多数我已经看过了)

我看懂了就马上给分。

谢谢了!
十分感谢,我多少理清了点头绪。不过,我把你的代码复制,粘贴测试的时候出现错误。就是如下代码:<script>
function hanshu(this){
if(this)
this=this.target;
else
this=window.event.srcElement;
this.style.color = '#FF0000';
}
</script>
<div onClick="hanshu()" style="color:#993399;">
点我能改变我的颜色
</div>

此外,我又查了好多资料,貌似 this 不能赋值吧。比如你写的这句 this=window.event.s

写错了吧...
<script>
function hanshu(evt){
if(evt)
evt=evt.target;//非IE获取
else
evt=window.event.srcElement;//IE获取..事件目标...
evt.style.color = '#FF0000';
}
</script>

<div onClick="hanshu()" style="color:#993399;">
点我能改变我的颜色
</div>

利用一个事件传进去.

还有.就是4楼说的那种..一开始让this指向div..同调用函数的时候...再出现的this同样会指向window...换一个名字就行了..
<script>
function hanshu(element){
element.style.color = '#FF0000';
}
</script>
<div onClick="hanshu(this)" style="color:#993399;">
点我能改变我的颜色
</div>

象什么情况呢..

再说一种this不指向window的时候吧...

比如...

<script>
window.onload=function(){ //匿名函数...加载完后才开始解析...
document.getElementsByTagName("div")[0].onclick=g_color;
}

function g_color(){
this.style.color=&