2011-10-10 84 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。 祝你好運,快樂的編碼;}}

相關問題