我有两个问题
this
指的是什么?我知道它是相关对象的某种容器。
由于缺少更好的选项,我试图使用表单传递变量。我的想法是<a onclick>
和onclick
,this.form.submit();
<form action="/justtesting/" method="post">
<a onclick="this.form.submit();" href="">click this</a>
<input name="pageid" value="12" type="hidden">
<input name="mid" value="5" type="hidden">
</form>
这样我传递变量。
我以前见过这个,但他们使用按钮而不是<a>
。
答案 0 :(得分:2)
答案简短:
this
指的是调用当前正在执行的函数的对象
答案很长: https://developer.mozilla.org/en/JavaScript/Reference/Operators/this
答案 1 :(得分:1)
&#34;这&#34;没有任何上下文总是引用-window-对象。
var test = 123;
alert(test); // 123
alert(this.test); // 123
您希望获得某种jQuery点击事件,搜索您想要传递的表单提交的任何值。
答案 2 :(得分:1)
这是指当前元素,在您的情况下它引用A
标记
如果您使用<Button type="Submit">click this</Button>
,那么它将无法使用javascript
如果您使用A
标记,则不要保留href属性,因为它可能会导致问题
<a href="javascript:this.form.submit()">click this</a>
答案 3 :(得分:1)
在内嵌绑定(例如元素的onclick
或onload
属性)内,this
指的是元素本身。所以,例如:
<a href="http://google.com" onclick="alert(this.href);">Click me</a>
<!-- Alerts "http://google.com" -->
<img src="foo.jpg" width="50" height="50" onload="alert(this.width+'x'+this.height);" />
<!-- Alerts "50x50" -->
所以通过说this.form
你说“抓住这个元素所属的形式(如果有的话)”,那么你就是在调用表单元素的submit()
方法。
答案 4 :(得分:1)
这是传递给一个事件 say指向作为参数传递给函数的锚对象。
答案 5 :(得分:1)
示例:
<div onclick="console.log(this) id="me">click me</div>
2。对于对象,它指的是有问题的对象
示例:
x = { hi: function(){console.log("Hi "+this.name)}};
x.name= "Bill";
x.hi(); // Hi Bill
3这两种行为都可以通过调用所谓的绑定来改变,通过使用bind,apply或call(bind在这里实现)
var bind = function(obj, fn){ return function(){ return fn.apply(obj, arguments)}
y.name = "Joe";
x.hi = bind(y, x.hi);
x.hi(); //Hi Joe
4如果没有指定,则指的是一个全局对象,它等同于兼容模式下浏览器中的窗口,并且在所谓的严格模式下是未定义的。
答案 6 :(得分:0)
在正常的Javascript事件中,this
指的是处理程序绑定的元素。但是,如果您的事件在IE中与attachEvent
绑定,则this
会引用该窗口。在您的代码中,this
指的是点击的锚标记。以下是如何在jQuery中正确实现所需的功能:
$("a").click(function() {
$(this).closest("form").submit();
});