2011-10-10 51 views
0

document.getElementsByName('name').value返回undefined。我不知道为什么会出现这种情况。Javascript无法访问文档:null或undefined

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

这里是我的文件包括:

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

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

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

...和我得到未定义的变量。我用它来触发脚本的按钮使用如下代码:

<button type="button" onclick="myfunction()">MyButton</button> 
  1. 我是否有效果按钮的类型什么样的信息是提供给脚本?
  2. 如何找出为什么document.getElementsByName()返回undefined
  3. Javascript document对象是否存在与从另一个文件导入的脚本有关的任何范围问题?

对不起,如果这是一个愚蠢的问题。我对JavaScript很陌生。

编辑:谢谢麦克塞缪尔你的答案。这固定它像一个魅力,我想知道为什么我以前不知道这一点?我应该在租用猜测和getElementsByName()如何表示有多个返回的值一样多的情况下...

+0

'document.getElementByName'不是跨浏览器,所以是的,它可能会返回奇怪的值或根本没有。这可能更容易分配一个ID或通过标签名称获取元素。 – William

+0

@Lime - 没有“getElementByName”,你寻求的方法是* getElementsByName *,每个支持DOM 1的浏览器都有它(自Navigator 2以来几乎每个浏览器都有)。 – RobG

+0

@RobG拼写错误=)无论如何,IE 9仍然没有得到'getElementsByName' [correct](http://www.quirksmode.org/dom/w3c_core.html#t125)。我绝对不会把这个古怪的行为称为跨浏览器。如果没有'document.getElementsByName(“myElement”)'的更多上下文,他可能会遇到浏览器错误。 – William

回答

5

getElementsByName返回包含元素而不是元素的类数组对象。在.value之前贴上[0]

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

JavaScript有3种不同的功能,适用于这种情况。当你想所有相同类型的元件的(也由索引数组),当需要特定单个元件,名称为任意的基团(访问与索引的阵列)和标签

___________________________________________________________________________________ 
|getElementById()  | Accesses the first element with the specified id.   | 
|      | Returns a single element, as ID's are unique in a document | 
|_______________________|____________________________________________________________| 
|getElementsByName() | Accesses all elements with a specified name.    | 
|      | Returns an array of all elements marked with this name. | 
|      | Used like a CSS class(not unique).       | 
|_______________________|____________________________________________________________| 
|getElementsByTagName() | Accesses all elements with a specified tagname.   | 
|      | Returns an array of all elements with a given tag.   | 
|_______________________|____________________________________________________________| 

使用ID。 祝你好运,快乐的编码;}}

相关问题