Javascript无法访问document:null或undefined

时间:2011-10-10 02:04:00

标签: javascript scope globals

document.getElementsByName('name').value返回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对象是否对从其他文件导入的脚本有任何范围问题?
  4. 对不起,如果这是一个愚蠢的问题。我对Javascript很新。

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

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分: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,任意组的名称(作为带索引的数组进行访问),并在需要所有相同类型的元素时(也通过索引数组)使用标记。 祝你好运,编码愉快; - }