JS_javascriptスキルのTHISとWINDOW.EVENT.SRCELEMENTの詳細な説明
まず簡単な例を見てみましょう:
まったく問題ありません。
では、どのような場合に使用できなくなるのでしょうか?
fuction method() { alert(this.value); } <input type="text" onblur="method()"/>
method() は応答関数によって呼び出される関数であるため、これは不可能です。
では、この状況では何をすべきでしょうか?
方法 1:
fuction method(btn) { alert(btn.value); } <input type="text" onblur="method(this)"/>
問題ありません!
方法 2:
fuction method() { alert(window.event.srcElement.value); } <input type="text" onblur="method()"/>
問題ありません! window.event.srcElement はイベントをトリガーしたコントロールを取得します
もう少し複雑な例を見ていきます
<head> <script type="text/javascript"> function InitEvent() { var inputs = document.getElementsByTagName_r("input"); for (var i = 0; i < inputs.length; i++) { inputs[i].onblur = OnblurEvent; } } function OnblurEvent() { // OnblurEvent是onblur的响应函数,而不是被响应函数调用的函数 // 所以可以用this来获取发生事件的对象 if (this.value.length > 0) { this.style.backgroundColor = "white"; } else { this.style.backgroundColor = "red"; } } </script> </head> <body onload="InitEvent()"> <input id="Text1" type="text" /> <input id="Text2" type="text" /> <input id="Text3" type="text" /> </body> </html>
この 2 つの違いとつながりを見てみましょう
これ:
例を見てみましょう:
<html> <title>this与srcElement的区别</title> <head> <script type="text/javascipt>" function btnClick(){ alert(this.value); } </script> </head> <body> <input type="button" value="单击" onclick="btnClick()"/> </body> </html>
この時点で表示される答えは「未定義」です。これは、関数呼び出し時に this 属性を使用して取得できないことを意味します。次の例を見てみましょう:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>无标题页</title> <script type="text/javascript"> function btnClick(btn){ alert(btn.value); } </script> </head> <body> <input type="button" onclick="btnClick(this)" value="单击" /> </body> </html>
このとき得られた答えは「クリック」ですが、なぜこのタイミングでできるのでしょうか?コードからわかるように、onclick イベントが関数 btnClick() を呼び出すと、これがパラメーターとして関数に渡されます。
上記を要約すると、関数を呼び出すときに this 属性を直接使用して取得することはできませんが、これはパラメータとして渡す必要があります。
window.event.srcElement:
以下の例を見てください:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>无标题页</title> <script type="text/javascript"> function btnClick(){ alert(window.event.srcElement.value); } </script> </head> <body> <input type="button" onclick="btnClick()" value="单击" /> </body> </html>
この時点で得られた答えは「click」で、関数呼び出し時に window.event.srcElement プロパティを使用して取得できることを示しています。
window.event.srcElement は直接使用できるのに、これは直接使用できないのはなぜですか?純粋に文字通りの意味では、これは「現在」を意味します。関数を呼び出すときに、特定のコントロールを関数内で直接使用することはできません。 2 番目のコードでは、これをパラメーターとして渡すため、正しい答えが得られます。
実際this と window.event.srcElement の使用の違いは次のとおりです。この属性を直接使用したい場合、この時点では関数を呼び出すことはできませんが、応答関数でなければなりません。一方、window.event.srcElement にはそのような制限はありません。
以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









この記事は、vue ソース コードを解釈するのに役立ち、これを使用して Vue2 のさまざまなオプションのプロパティにアクセスできる理由を紹介します。

同僚は、これによって指摘されたバグのために立ち往生しました。Vue2 のこの指摘の問題により、アロー関数が使用され、その結果、対応する props を取得できなくなりました。私がそれを彼に紹介したとき、彼はそれを知りませんでした。その後、私はわざとフロントエンド コミュニケーション グループに目を向けました。これまでのところ、フロントエンド プログラマーの少なくとも 70% はまだそれを理解していません。今日私はそれを共有しますyou this link. もしすべてが間違っている場合 まだ学習していない場合は、大きな口を与えてください。

jQuery での this キーワードの柔軟な使用 jQuery では、this キーワードは非常に重要かつ柔軟な概念であり、現在操作されている DOM 要素を参照するために使用されます。このキーワードを合理的に使用することで、ページ上の要素を簡単に操作し、さまざまなインタラクティブな効果や機能を実現できます。この記事では、特定のコード例を組み合わせて、jQuery でのこのキーワードの柔軟な使用方法を紹介します。簡単なこの例 まず、簡単なこの例を見てみましょう。あるとします。

これは何ですか?次の記事では、JavaScript でのこれについて説明し、関数の呼び出し方法の違いによる違いについて説明します。

1. this キーワード 1. this の型: どのオブジェクトが呼び出されるかがそのオブジェクトの参照型 2. 使用法の概要 1. this.data;//アクセス属性 2. this.func();// アクセスメソッド 3.this ( );//このクラス内の他のコンストラクタを呼び出す 3. 使い方の説明 1.this.dataはメンバメソッドで使用しているので、これを追加しないとどうなるかを見てみましょう classMyDate{publicintyear;publicintmonth;publicintday; publicvoidsetDate(intyear, intmonth,intday){はい

JavaScript はこのポインタをどのように変更するのでしょうか?次の記事では、JS でこのポインターを変更する 3 つの方法を紹介します。

JavaScript のアロー関数は比較的新しい構文です。独自の this キーワードはありません。逆に、アロー関数の this は、それを含むスコープ オブジェクトを指します。影響は次のとおりです: 1. アロー関数の this は次のとおりです。 static; 2. アロー関数はコンストラクタとして使用できません; 3. アロー関数はメソッドとして使用できません。

this キーワードは、JavaScript で最も複雑なメカニズムの 1 つです。これは、すべての関数のスコープ内で自動的に定義される非常に特別なキーワードです。しかし、経験豊富な JavaScript 開発者でも、それが正確に何を指しているのかを理解するのは困難です。
