爲什麼它不會在下面的代碼中將'number'識別爲變量?document.getElementsByTagName(「a」)的奇怪問題
var number = document.getElementsByTagName("a").length;
var link = document.getElementsByTagName("a")[number].href;
當然,它可以使用任何實數而不是變量。
爲什麼它不會在下面的代碼中將'number'識別爲變量?document.getElementsByTagName(「a」)的奇怪問題
var number = document.getElementsByTagName("a").length;
var link = document.getElementsByTagName("a")[number].href;
當然,它可以使用任何實數而不是變量。
由document.getElementsByTagName("a")
返回的數組是從0開始的,因此根據定義,您正在尋找的索引不存在。我想你大概意思是這樣的:
var number = document.getElementsByTagName("a").length;
var link = document.getElementsByTagName("a")[number-1].href;
:)
編輯:
嘗試使用螢火蟲轉儲值到控制檯進行調試 - 這個問題將很快成爲明顯的:)
var number = document.getElementsByTagName("a").length;
console.log("number = "+number);
var link = document.getElementsByTagName("a")[number-1].href;
JavaScript數組是基於零的,因此,您將需要使用number-1
來獲取最後一個元素。
謝謝,這工作..回顧一個非常愚蠢的錯誤。無論如何,謝謝你:D – Chiyou 2011-03-05 09:06:18
爲什麼要調用'getElementsByTagName'兩次?調用一次到局部變量然後使用它。基本優化。 :) – 2011-03-05 09:14:25
這是否已經......我只是改變了它,因爲我認爲在我使用的代碼中存在錯誤,現在已經優化了:) – Chiyou 2011-03-05 09:16:13