Javascript コードを実行している間、現在のスコープにすべてのローカル変数があるため、次のコードがあるとします。
var myObject = New Object();
myObject.Person = New Object();
myObject.Person.Name = "Mark";
myObject.Person.Gender = "Male";
myObject.Name = "object1";
... ルート オブジェクトは myObject になり、ドット表記で子孫オブジェクトを参照します。
ただし、ブラウザーでの DOM の実装のおかげで、キーワードwindow
を介してオブジェクトも継承します。this
実際、this
単純な状況、つまりクロージャーを使用していない場合は、キーワードを省略できます。したがって、関数名を使用するだけで、最上位の Javascript 関数にアクセスできます。
特定の要素にアクセスしたい場合は、DOM を学ぶ必要があり、提案した構文 (1990 年代の Javascript のように聞こえます) を使用しないでください。知っておく必要があるルート要素は、プロパティHTMLDocument
を介してアクセスされるオブジェクトです。document 要素のメソッドを使用して、document
特定のId
( ではないName
) 属性を持つ要素を検出できます。getElementById
もちろん、要素に最初から一意の ID を指定しておくと役立ちます。コレクションを再帰的に使用して、childNodes
必要なものが見つかるまで要素を手動で反復処理することもできます。または、本当に Id を提供できない場合はgetElementsByTagName
、DOM のすべての要素に関連付けられているメソッドを使用することもできます。
例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE></TITLE>
<META NAME="Generator" CONTENT="TextPad 4.6">
<META NAME="Author" CONTENT="?">
<META NAME="Keywords" CONTENT="?">
<META NAME="Description" CONTENT="?">
<SCRIPT LANGUAGE="Javascript">
<!--
function DoSummat()
{
var divInside = document.getElementById("Inside");
divInside.textContent = "This text will appear inside.";
}
//-->
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#FF0000" VLINK="#800000" ALINK="#FF00FF" BACKGROUND="?">
<FORM>
<INPUT TYPE="BUTTON" onclick="DoSummat();" NAME="MyButton" VALUE="Press Me">
</FORM>
<DIV ID="Outside">
<DIV ID="Middle">
<DIV ID="Inside"></DIV>
</DIV>
</DIV>
</BODY>
</HTML>