将document.getElementById设置为variable

Bre*_*mas 7 javascript variables getelementbyid

以下作品:

    $ = document.form;
    x = $.name.value;
Run Code Online (Sandbox Code Playgroud)

这不是:

    $ = document.getElementById;
    x = $("id").value;
Run Code Online (Sandbox Code Playgroud)

关于为什么这不起作用或如何做到这一点的任何想法?

Que*_*tin 11

this取决于您调用函数的方式.

当你打电话document.getElementById然后getElementById得到this === document.当您复制getElementById到一个不同的变量,然后调用它$,然后this === window(因为window是默认的变量).

然后,这会导致它在窗口对象中而不是在文档对象中查找id,并且由于窗口不是文档而且没有相同的方法,因此会失败.

你需要保持document通话.您可以使用包装函数,例如

function $ (id) { return document.getElementById(id); }
Run Code Online (Sandbox Code Playgroud)

...但请不要使用$.这是一个可怕的名字.它没有任何意义,它会让看到它的人感到困惑并想到"啊!我知道jQuery!" 或者"啊!我知道原型"等等.


Kev*_*een 0

如果您想实现类似的目标,我建议使用jQuery。它们的 $ 符号比仅仅通过 id 获取元素要强大得多。

另外,如果您使用的任何平台已经使用 $ 作为变量(ASP .Net 有时使用它),您可能会得到不可预测的结果。