Javascript无法访问document:null或undefined

Ada*_*dam 0 javascript scope globals

document.getElementsByName('name').value回报undefined.关于为什么会这样,我没有最模糊的想法.

我正确地包含了.js文件,Firebug在我的代码中没有发现任何错误,并且代码在第一行或第一行中失败,因为每次我调用上面提到的函数时,它都会返回undefined.这让我完全糊涂了.

这是我如何包含该文件:

    <script type="text/javascript" src="new.js"></script>
Run Code Online (Sandbox Code Playgroud)

以下是达到函数调用返回的第一个未定义值所需的所有代码:

    function myfunction() {
        var myvar = document.getElementsByName('myElement').value;
Run Code Online (Sandbox Code Playgroud)

......那时我得到未定义的变量.我用来触发脚本的按钮使用以下代码:

    <button type="button" onclick="myfunction()">MyButton</button>
Run Code Online (Sandbox Code Playgroud)
  1. 按钮类型是否影响脚本可用的信息?
  2. 我如何找出document.getElementsByName()退货的原因undefined
  3. Javascript document对象是否与从另一个文件导入的脚本有任何范围问题?

对不起,如果这是一个愚蠢的问题.我是Javascript的新手.

编辑:谢谢Mike Samuel的回答.这就像一个魅力固定它,我想知道为什么我以前不知道这个?我应该在租用的猜测中看到getElementsByName()建议如何返回多个值...

Mik*_*uel 5

getElementsByName返回一个包含元素的类数组对象,而不是元素.坚持一个[0]之前.value.

var myvar = document.getElementsByName('myElement')[0].value;
Run Code Online (Sandbox Code Playgroud)