firebug可以告诉我对象的javascript名称吗?

firebug可以告诉我对象的javascript名称吗?,javascript,firebug,names,Javascript,Firebug,Names,我最近在我的页面中添加了不少javascript,但都是通过经典的“裤子座位”方式学到的。当我想让我的页面做点什么的时候,我会用谷歌搜索和实验,直到得到我想要的结果 我经常在我的页面中有一些我想激活/停用、隐藏、显示等的对象,但是由于错过了对javascript的严格介绍,我不知道这些东西是如何命名的。我在firebug打开的情况下单击对象,希望看到该对象的完全限定名称,但没有得到任何乐趣。我只需要能够像form.button.value=“something”这样做,并且需要知道该对象的名称

我最近在我的页面中添加了不少javascript,但都是通过经典的“裤子座位”方式学到的。当我想让我的页面做点什么的时候,我会用谷歌搜索和实验,直到得到我想要的结果

我经常在我的页面中有一些我想激活/停用、隐藏、显示等的对象,但是由于错过了对javascript的严格介绍,我不知道这些东西是如何命名的。我在firebug打开的情况下单击对象,希望看到该对象的完全限定名称,但没有得到任何乐趣。我只需要能够像form.button.value=“something”这样做,并且需要知道该对象的名称

有什么想法吗


谢谢。

你的问题非常模糊,所以我不能给你你需要的答案

对象
s不能被“激活”/“停用”,并且它们没有“名称”(如果您的意思是这样的话,它们可以有一个
名称
属性)

例如,假设:

var foo = {};
foo
是一个恰好具有对象值的变量。对象不是变量(具有“名称”的对象)。鉴于:


foo
现在是
null
,foo持有的对象现在存储为
bar

您的问题非常模糊,因此我无法给出您需要的答案

对象
s不能被“激活”/“停用”,并且它们没有“名称”(如果您的意思是这样的话,它们可以有一个
名称
属性)

例如,假设:

var foo = {};
foo
是一个恰好具有对象值的变量。对象不是变量(具有“名称”的对象)。鉴于:


foo
现在为
null
,foo持有的对象现在存储为
bar

您将无法执行此操作。变量名不与变量绑定,也不在函数之间传递。您最好编写一个函数来获取字符串并将其解析回变量:

function printVar(name) {
    console.log(name + ": " + window[name]);
}
当然,这有很多问题。我建议只进行两次日志记录调用:

console.log("foo");
console.log(foo);
或者,使用printf样式语法:

console.log("foo: %o", foo);

你不能那样做。变量名不与变量绑定,也不在函数之间传递。您最好编写一个函数来获取字符串并将其解析回变量:

function printVar(name) {
    console.log(name + ": " + window[name]);
}
当然,这有很多问题。我建议只进行两次日志记录调用:

console.log("foo");
console.log(foo);
或者,使用printf样式语法:

console.log("foo: %o", foo);

元素通常使用
id
属性进行标识。例如:

<input type="submit" id="saveButton" value="Save" />

元素通常使用
id
属性进行标识。例如:

<input type="submit" id="saveButton" value="Save" />

既然您给出了
form.button.value=“something”
示例,我猜您希望控制HTML对象。您可以为它们分配一个id,例如:既然您给出了
form.button.value=“something”
示例,我猜您想要控制HTML对象。您可以为它们分配一个id,例如:当您运行Javascript代码时,您拥有当前作用域中的所有局部变量,因此如果您拥有以下代码:

var myObject = New Object();
myObject.Person = New Object();
myObject.Person.Name = "Mark";
myObject.Person.Gender = "Male";
myObject.Name = "object1";
。。。您的根对象将是myObject,您通过点表示法引用子对象

但是,由于在浏览器中实现了DOM,您还可以通过
this
关键字继承
窗口
对象。事实上,对于简单的情况,例如不使用闭包时,您可以保留
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代码时,您拥有当前作用域中的所有局部变量,因此如果您拥有以下代码:

var myObject = New Object();
myObject.Person = New Object();
myObject.Person.Name = "Mark";
myObject.Person.Gender = "Male";
myObject.Name = "object1";
。。。您的根对象将是myObject,您通过点表示法引用子对象

但是,由于在浏览器中实现了DOM,您还可以通过
this
关键字继承
窗口
对象。事实上,对于简单的情况,例如不使用闭包时,您可以保留
this
关键字。因此,只需使用函数名,就可以在顶层访问Javascript函数

如果您想要访问特定的元素(听起来像是您想要的),那么您需要学习DOM,而不是使用您建议的语法(听起来像是20世纪90年代的Javascript)。您需要知道的根元素是
HTMLDocument
对象,通过
document
属性访问。通过使用文档元素的
getElementById
方法,可以发现具有特定
Id
(而不是
Name
)属性的元素。当然,如果您从一开始就为元素提供了一个唯一的Id,这会有所帮助。您还可以递归地使用
childNodes
集合手动迭代元素,直到找到所需的内容。或者,如果您确实无法提供Id,也可以使用