淺談html中id和name的區別實例代碼_經驗交流
html
id
name
我們可以透過一段程式碼來分析其中的微妙差異:
在IE瀏覽器裡,我們可以透過多少方法來索引到這個文字方塊對象? (為區別起見,我們把NAME和ID設為了不同的值)
1. oDemo
2. demoform.oDemo
3. document.all.oDemo
4. document.all. demoform.oDemo
5. document.forms[0].oDemo
6. document.forms['demoform'].oDemo
7. document.forms['demoform'].childNodes[0]
9. document.getElementById('oDemo2')
以上9種索引方法在IE6裡面全部通過回傳值測試,不過值得注意的是最後一種:在IE6裡,我把索引對象寫成
document.getElementById('oDemo'),瀏覽器也能正確索引到對象,真是可怕的容錯性啊! !
接著問題來了,我們把這段程式碼放在Mozilla Firefox 1.0裡再執行一次,只有第7種方法返回“undefined”,其他的方法可以正確
索引到對象,不過由於第3、4種方法用到了document.all這個IE專有對象,FF1.0雖然返回了正確的值,不過卻在控制台裡發出了警
告:警告:非標準的屬性 document.all。請使用 W3C 的標準形式 document.getElementById() 。
接下來我們把HTML文字類型定義得嚴格一點,在原始碼開頭加上:
HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN " "http://www.w3.org/TR/html4/loose.dtd">
使HTML文本依照HTML4.01標準去解析,在IE6裡照樣全部通過回傳值測試,不過在Mozilla Firefox 1.0裡麻煩就大了,第3、4種方法
沒有任何的回傳值,而在控制台裡發出了報錯訊息:錯誤: document.all has no properties ,而第7種方法依舊回傳“undefined
”。
小 結
name原來是為了識別之用,但現在根據規範,都建議用id來識別元素。
以下只能用name:
1. 表單(form)的控制名,且提交的資料都以控制項的name而非id控制。因為有許多name會同時對應多個控件,例如
checkbox和radio,而id必須是全文檔中唯一的。另外瀏覽器會根據name來設定傳送到伺服器的request。因此如果用id,伺服器是無
法得到資料的。
2. frame和window的名字,用於在其他frame或window指定target。
以下只能用id:
1. label與form控制的關聯,
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前
By 尊渡假赌尊渡假赌尊渡假赌
刺客信條陰影:貝殼謎語解決方案
3 週前
By DDD
Windows 11 KB5054979中的新功能以及如何解決更新問題
2 週前
By DDD
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前
By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)
