JavaScript 无法访问文档 : null or undefined

标签 javascript scope global

document.getElementsByName('name').value 返回未定义。我对为什么会出现这种情况一无所知。

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

以下是我包含该文件的方法:

    <script type="text/javascript" src="new.js"></script>

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

    function myfunction() {
        var myvar = document.getElementsByName('myElement').value;

...此时我得到了 undefined variable 。我用来触发脚本的按钮使用以下代码:

    <button type="button" onclick="myfunction()">MyButton</button>
  1. 我使用的按钮类型是否会影响脚本可用的信息?
  2. 如何找出 document.getElementsByName() 返回 undefined 的原因?
  3. Javascript document 对象与从其他文件导入的脚本是否存在范围问题?

抱歉,如果这是一个愚蠢的问题。我对 Javascript 很陌生。

编辑:谢谢迈克·塞缪尔的回答。这就像一个魅力一样解决了它,我想知道为什么我以前不知道这一点?我应该至少猜测一下 getElementsByName() 如何表明返回了多个值......

最佳答案

getElementsByName 返回一个包含元素的类似数组的对象,而不是一个元素。在 .value 之前添加 [0]

var myvar = document.getElementsByName('myElement')[0].value;

关于JavaScript 无法访问文档 : null or undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7707893/

相关文章:

grails - 依赖范围的确切含义是什么,例如构建、测试等

python - 导入内容的对象范围如何工作?

c++ - 从另一个文件访问 C++ 中的 extern "C"变量

JAVA - 将方法返回类型从 void 更改为 String 会立即创建 'dead' 代码?

javascript - 修改使用 HTML5 模板创建的元素

javascript - 在 IE 中使用 javascript 预填充动态创建的文本框

javascript - JavaScript 中的时间戳

javascript - ConvertFromHTML 支持 Draft.js 中的自定义 block 类型吗?

javascript - AngularJS $rootScope 变量存在,但无法访问

scope - 标准 ML - 在 let-in-end 表达式中更新全局变量?