使'this'关键字引用调用对象(javascript)

时间:2012-11-01 19:06:16

标签: javascript html this

我已经阅读了几个关于此的主题,但是,我仍然无法弄明白。 我只需要让'this'语句引用调用该函数的对象,而它似乎是指该窗口..

我的功能如下:

function  bckClr(clr){
var elmnt=this;
elmnt.style.background-color=clr;
}

我称之为:

< div > onmouseover="bckClr(#ff0000)">Lorim ipsum dolor sit amet.. < /div >

3 个答案:

答案 0 :(得分:5)

这样做:

<div onmouseover="bckClr(this, '#ff0000')">Lorim ipsum dolor sit amet.. </div>

然后:

function  bckClr(elmnt, clr){
   elmnt.style.backgroundColor=clr;
}

<强>更新
Pranav Kapoor指出,使用CamelCase更新了sytle属性。

答案 1 :(得分:2)

将您的javascript与您的标记分开:

<div id="thediv">Lorim ipsum dolor sit amet.. </div>

var bckClr = function (element, color) {
    // notice the property is camel cased, not hyphenated
    element.style.backgroundColor = color;
};

document.getElementById('thediv').onmouseover = function () {
    bckClr(this, '#ff0000');
};

http://jsfiddle.net/L9DRF/3/

答案 2 :(得分:1)

使用事件侦听器而不是内联处理程序。

HTML:

<div id="mydiv">Lorim ipsum dolor sit amet.. </div>

JS:

function  bckClr(elmnt, clr){
   elmnt.style.backgroundColor=clr;
}
document.getElementById("mydiv").addEventListener("mouseover",function(){bckClr(this, '#ff0000');})