我把你的代碼的以下部分:那些四行
df=document.forms;
len=d.length;
for(i=0; i<len; i++)
els=d[i].elements;
的幾個注意事項:
- 第一行:
df
現在包含窗體列表,確定
- 二行:但這個
d
從哪裏來?
- 它看起來像它沒有初始化,因此不包含多...
- ...所以我不認爲你能得到它的長度
- 四線:同樣的事情
- 如果
d
沒有初始化,它不指向任何東西,並且不包含任何
您確定您必須使用d
和df
?而不是隻有df
無處不在?
同樣的事情,晚了一點,在你的第二個for()
循環:您使用的是被稱爲el
變量,但你在哪裏初始化變量?
我看到的是這樣的:
els=d[i].elements;
for(j=0;j<el.length; j++)
所以,你把一個叫els
變量的元素;並且,然後,你試着從一個叫做el
變量來讀......
基本上是:從變量讀取之前,您應該確保它包含的東西;-)
而且,爲了幫助你,你應該安裝調試擴展名,例如Firefox的Firebug (或使用Chrome瀏覽器提供的控制檯):它往往給人有趣的錯誤信息,如:
http://extern.pascal-martin.fr/so/so-6801104.png
在OP後0
編輯編輯了問題
下一步,我會說,是添加{}
其中那些是必要的。
如果在for()
之後沒有放{}
,則循環中只會執行一條指令。
總之,如果你有這樣的:
for (i=0 ; i<10 ; i++)
console.log('hello');
console.log('world');
然後hello
將顯示10倍;但world
只會顯示一個。
如果你希望兩個電話的console.log要在for
循環,必須使用括號:
for (i=0 ; i<10 ; i++) {
console.log('hello');
console.log('world');
}
所以,即使你沒有語法錯誤,現在,你的代碼可能不像你認爲的那樣循環。
最後,如果你想找出哪些元素具有焦點,你應該看看document.activeElement
財產(引用):
返回當前如果用戶輸入任何內容,那麼 將獲得按鍵事件。
現在看來,這不是很標準的是,因爲它是HTML-5規範的一部分,但它似乎由多個瀏覽器的支持:
最初是一種專有的DOM在Internet Explorer Explorer 4中,此屬性在Opera和Safari中也受支持(自 版本4開始)。
我改正了這個錯誤是不是df – soso
我改正了這個錯誤el el not els – soso