Alors que vous utilisez le code Javascript, vous avez toutes les variables locales dans le périmètre actuel, donc si vous aviez le code suivant:
var myObject = New Object();
myObject.Person = New Object();
myObject.Person.Name = "Mark";
myObject.Person.Gender = "Male";
myObject.Name = "object1";
... votre objet racine serait myObject, et vous vous référez aux objets descendants à travers la notation par points.
Cependant, grâce à l'implémentation du DOM dans le navigateur, vous héritez également de l'objet window
via le mot-clé this
. En fait, vous pouvez laisser le mot-clé this
pour des situations simples, c'est-à-dire lorsque vous n'utilisez pas de fermetures. Par conséquent, vous pouvez accéder aux fonctions Javascript au niveau supérieur en utilisant simplement le nom de la fonction. Si vous voulez accéder à des éléments spécifiques, comme si cela vous semblait vouloir, vous devez apprendre le DOM, et ne pas utiliser la syntaxe que vous avez suggérée (cela ressemble à des années 90 Javascript). L'élément racine que vous devez connaître est l'objet HTMLDocument
, accessible via la propriété document
. Vous pouvez découvrir des éléments avec des attributs Id
(pas Name
) spécifiques en utilisant la méthode getElementById
de l'élément de document. Bien sûr, cela aide si vous avez donné à votre élément un identifiant unique dès le départ. Vous pouvez également utiliser récursivement la collection childNodes
pour parcourir manuellement les éléments jusqu'à ce que vous trouviez ce que vous voulez. Sinon, si vous ne pouvez pas fournir un ID, vous pouvez également utiliser la méthode getElementsByTagName
, qui est attachée à chaque élément du DOM.
Exemple:
<!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>
En JavaScript, même les fonctions peuvent être anonymes. Pouvez-vous expliquer avec un code ce que vous avez du mal à faire? – Nosredna