代码之家  ›  专栏  ›  技术社区  ›  Sniggerfardimungus

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

  •  0
  • Sniggerfardimungus  · 技术社区  · 16 年前

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

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

    有什么想法吗?

    谢谢

    5 回复  |  直到 16 年前
        1
  •  1
  •   Andy Hoffman    10 年前

    当您运行Javascript代码时,您拥有当前作用域中的所有局部变量,因此如果您拥有以下代码:

    var myObject = New Object();
    myObject.Person = New Object();
    myObject.Person.Name = "Mark";
    myObject.Person.Gender = "Male";
    myObject.Name = "object1";
    

    但是,由于在浏览器中实现了DOM,您还继承了 window this 关键词。事实上,你可以离开 这 关键字out用于简单情况,即不使用闭包时。因此,只需使用函数名,就可以在顶层访问Javascript函数。

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

    例子:

    <!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>
    
        2
  •  1
  •   Guffa    16 年前

    元素通常使用 id

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

    你可以使用 getElementById 方法获取对元素的引用:

    var b = document.getElementById('saveButton');
    b.value = 'Saving...';
    
        3
  •  1
  •   treznik    16 年前

    form.button.value="something" 例如,我猜您想要控制HTML对象。您可以为他们分配一个id,例如:<form id=“我的表格”。。。然后从JS中按id获取元素,甚至调用函数getElementById()。

    document.getElementById('my_form').button.value = 'something';
    
        4
  •  0
  •   Eli Grey    16 年前

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

    Object 不能“激活”/“停用”,并且它们没有“名称”(它们可以有 name 财产,如果你是这个意思的话)。

    例如,假设:

    var foo = {};
    

    foo 是一个 正好有一个值是对象。对象不是变量(具有“名称”的对象)。鉴于:

    bar = foo; foo = null;
    

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

        5
  •  0
  •   nickf    16 年前

    function printVar(name) {
        console.log(name + ": " + window[name]);
    }
    

    当然,有一个 许多 这有很多问题。我建议只进行两次日志记录调用:

    console.log("foo");
    console.log(foo);
    

    或者,使用printf样式语法:

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