Javascript 通过';这';到onclick事件
可能重复:Javascript 通过';这';到onclick事件,javascript,html,Javascript,Html,可能重复: 这样行吗 <script type="text/javascript"> var foo = function(param) { param.innerHTML = "Not a button"; }; </script> <button onclick="foo(this)" id="bar">Button</button> var foo=函数(参数) { param.innerHTML=“不是按钮”; }; 按钮
这样行吗
<script type="text/javascript">
var foo = function(param)
{
param.innerHTML = "Not a button";
};
</script>
<button onclick="foo(this)" id="bar">Button</button>
var foo=函数(参数)
{
param.innerHTML=“不是按钮”;
};
按钮
而不是这个
<script type="text/javascript">
var foo = function()
{
document.getElementId("bar").innerHTML = "Not a button";
};
</script>
<button onclick="foo()" id="bar">Button</button>
var foo=函数()
{
document.getElementId(“bar”).innerHTML=“非按钮”;
};
按钮
第一个方法是否允许我从其他地方加载javascript,以便对任何页面元素执行操作?是的,第一个方法将对从其他地方调用的任何元素起作用,因为它总是使用 不考虑id的目标元素 检查这把小提琴
您可以随时以不同的方式调用function:
foo.call(this)
通过这种方式,您将能够在函数中使用此
上下文
例如:
按钮代码>
var foo = function()
{
this.innerHTML = "Not a button";
};
在JavaScript中,这个
总是指我们正在执行的函数的“所有者”,或者更确切地说,指函数作为方法的对象。当我们在页面中定义忠实的函数doSomething()时,它的所有者是页面,或者更确切地说是JavaScript的窗口对象(或全局对象)
您拥有的代码可以工作,但是是从全局上下文执行的,这意味着
此
引用全局对象
<script type="text/javascript">
var foo = function(param) {
param.innerHTML = "Not a button";
};
</script>
<button onclick="foo(this)" id="bar">Button</button>
问某件事是否可行没有多大意义。最好测试您自己的命令,并澄清您想要使用的命令以及您不确定的命令。
此
是在调用时调用函数的对象。javascript中没有“所有者”的概念。如果在不使用对象的情况下调用函数,则此
是全局对象(浏览器中的窗口
)。例如:函数f(){console.log(this);};o={a:f};o、 a();var b=o.a;b()代码>太好了!这有什么缺点吗?
<script type="text/javascript">
document.getElementById('bar').onclick = function() {
this.innerHTML = "Not a button";
};
</script>
<button id="bar">Button</button>