我在iframe中有一些与onclick事件相关联的元素,例如:

<iframe>
 ...
    <input type="text" onclick="somefunction(this)"/>
 ...
</iframe>


在我尝试更改输入值的函数中,没有什么特别的:

{
...
foo.value = "changed!"
...
}


此时,我可以在Firebug中看到该值已更改,但是当函数完成时,该值完全没有更改。

鼠标悬停时,同样的事情似乎起作用。

有任何想法吗?

谢谢。

编辑:更改代码错误

最佳答案

“这”在不同背景下意味着不同的事物

鉴于:

<input type="text" onclick="somefunction(this)"/>


“ this”是输入(因为它被称为myInput.onclick())

但:

function someFunction(foo) {
    this.value;
}


您的呼叫方式是:

someFunction(myInput)


这与

window.someFunction(myInput)


因此,在这种情况下,“ this”是窗口对象。

请改用“ foo”(因为这是函数声明中的参数名称)。

10-08 08:40
查看更多