-3

2つの質問があります

  1. とはどういうthis意味ですか? 問題のオブジェクトのある種のコンテナであることを理解しています。

  2. より良いオプションがないため、フォームを使用して変数を渡そうとしています。<a onclick>私の考えonclickthis.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>ボタンを使用していました。

4

7 に答える 7

2

簡単な答え: this現在実行中の関数を呼び出したオブジェクトを指します

長い答え: https://developer.mozilla.org/en/JavaScript/Reference/Operators/this

于 2012-07-23T17:39:21.907 に答える
1

コンテキストのない「this」は、常に -window- オブジェクトを参照します。

var test = 123;

alert(test); // 123
alert(this.test); // 123

そのためのある種のjQueryクリックイベントが必要になり、フォーム送信とともに渡したい値を検索します。

于 2012-07-23T17:33:20.933 に答える
1

インライン バインディングの内部 (要素の属性など) はonclick、要素自体を参照します。たとえば、次のようになります。onloadthis

<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()メソッドを呼び出していることになります。

于 2012-07-23T17:37:17.637 に答える
1

これは現在の要素を参照し、あなたの場合はAタグを参照します

使用する <Button type="Submit">click this</Button>と、javascriptなしで動作します

また、タグを使用する場合Aは、問題が発生する可能性があるため、href 属性を残さないでください。

<a href="javascript:this.form.submit()">click this</a>

于 2012-07-23T17:36:22.120 に答える
1

これは、イベントに渡されると、パラメーターとして関数に渡されるアンカー オブジェクトを参照します。

于 2012-07-23T17:39:16.633 に答える
1
  1. イベント ハンドラーの場合、'this' は問題のターゲット イベントを参照します。

例:

<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 そのようなものが指定されていない場合、これはグローバル オブジェクトを参照します。これは、ブラウザの互換モードでは window に相当し、いわゆる厳密モードでは undefined に相当します。

于 2012-07-23T17:46:08.183 に答える
0

通常の JavaScript イベントでthisは、ハンドラーがバインドされている要素を参照します。ただし、イベントがattachEventIE でバインドされている場合はthis、ウィンドウを参照してください。コードでthisは、クリックされたアンカー タグを参照します。jQuery で必要な機能を適切に実装する方法は次のとおりです。

$("a").click(function() {
     $(this).closest("form").submit();
 });
于 2012-07-23T17:38:17.037 に答える