我在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”(因为这是函数声明中的参数名称)。