而你正在运行的JavaScript代码,您必须在当前范围内的所有局部变量,所以如果你有以下代码:
var myObject = New Object();
myObject.Person = New Object();
myObject.Person.Name = "Mark";
myObject.Person.Gender = "Male";
myObject.Name = "object1";
...您的根对象是myObject的,你可以通过点符号来引用后代对象。
但是,由于在浏览器中实现了DOM,因此您还通过this
关键字继承了window
对象。事实上,您可以将简单情况下的this
关键字取消,即当您未使用关闭时。因此,只需使用函数名即可访问顶层的Javascript函数。
如果你想访问特定的元素,就像你想要的那样,你需要学习DOM,而不是使用你所建议的语法(听起来像20世纪90年代的Javascript)。您需要知道的根元素是HTMLDocument
对象,可通过document
属性进行访问。您可以使用文档元素的getElementById
方法发现具有特定Id
(而不是Name
)属性的元素。当然,如果你从一开始就为你的元素提供了一个独特的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>
在JavaScript中,甚至函数可以是匿名的。你能用一些代码来解释你在做什么时遇到麻烦吗? – Nosredna 2009-11-25 23:28:33