0

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. Javascriptdocument对象是否对从另一个文件导入的脚本有任何范围问题?

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

编辑:谢谢迈克塞缪尔的回答。这就像一个魅力一样固定它,我想知道为什么我以前不知道这个?我应该尽可能多地看到 getElementsByName() 如何暗示返回的值不止一个......

4

2 回答 2

6

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

var myvar = document.getElementsByName('myElement')[0].value;
于 2011-10-10T02:07:17.623 回答
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,任意组的名称(作为具有索引的数组访问)和当您想要所有相同类型的元素时使用标记(也通过索引数组)。祝你好运,编码愉快;-}

于 2011-10-10T02:50:07.417 回答