首頁 web前端 html教學 HTML元素的ID和Name屬性的差異_HTML/Xhtml_網頁製作

HTML元素的ID和Name屬性的差異_HTML/Xhtml_網頁製作

May 16, 2016 pm 04:42 PM
id name

今天對 有點疑惑, 加上#表示一個錨,後面跟上13,就會跳到本頁的13的位置,而這個1​​3就是Name屬性值。怎麼不
是ID值呢? ? ?所以查了下ID 和Name的區別,特記錄

最classical的答案:ID就像是一個人的身分證號碼,而Name就像是他的名字,ID顯然是唯一的,而Name是可以重複的。
顯然這個ID和Name的解答說的太籠統了,當然那個解釋對於ID來說是完全對的,它就是Client端HTML元素的Identity。而Name其實要複雜的多,因為Name有很多種的用途,所以它並不能完全由ID來代替,從而將其取消掉。具體用途有:
用途1: 作為可與伺服器互動資料的HTML元素的伺服器端的標示,例如input、select、textarea、和button等。我們可以在伺服器端根據其Name透過Request.Params取得元素提交的值。
用途2: HTML元素Input type='radio'分組,我們知道radio button控制項在同一個分組類,check操作是mutex的,同一時間只能選取一個radio,而這個分組就是根據相同的Name屬性來實現的。
用途3: 建立頁面中的錨點,我們知道link是獲得一個頁面超級鏈接,如果不用href屬性,而改用Name,如:< ;a name="PageBottom">,我們就獲得了一個頁面錨點。
用途4: 作為物件的Identity,如Applet、Object、Embed等元素。例如在Applet物件實例中,我們將使用其Name來引用該物件。
用途5: 在IMG元素和MAP元素之間關聯的時候,如果要定義IMG的熱點區域,需要使用其屬性usemap,使usemap="#name"(被關聯的MAP
元素的Name )。
用途6: 某些特定元素的屬性,如attribute,meta和param。例如為Object定義參數或Meta中。
顯然這些用途都不是能簡單的使用ID來代替掉的,所以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]
8. document.forms['demoform'].elements[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文字依照HTML4.01標準去解析,在IE6裡照樣全部通過回傳值測試,不過在Mozilla Firefox 1.0裡麻煩就大了,第3、4種方法沒有任何的回傳值,而在控制台裡發出了報錯訊息:錯誤: document.all has no properties ,而第7種方法依舊回傳「undefined」。
小 結
NAME主要應用在互動式網頁,表單提交給某個伺服器端腳本後接收變處理量使用。從原始碼的規範性和相容性角度出發,如在客戶端腳本裡要索引某個對象,建議用
document.getElementById()
另外舉個簡單的例子:

使用者名稱:
密碼:

如果我要取得使用者名稱和密碼;JS用name取得的話,就得寫成document.form1.username.value;
document.form1.password.value;
用id取得:
docuement.getElementById("username");
docuement.getElementById("pwd");
有時候name 可能會出現相同的名字,所以這時候我們用name獲得就無法確定獲得的是哪個值了。
document.getElemntsByName("username");
這裡得到的是一個陣列
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

修復事件ID 55,50,98,140磁碟錯誤在事件檢視器 修復事件ID 55,50,98,140磁碟錯誤在事件檢視器 Mar 19, 2024 am 09:43 AM

若您在Windows11/10的事件檢視器中發現事件ID55、50、140或98,或遇到磁碟檔案系統結構損壞且無法使用的錯誤,請依照下列指南解決此問題。什麼是事件55,磁碟上的檔案系統結構損壞和不可用的意思?第55屆會議,Ntfs磁碟上的檔案系統結構損壞且無法使用。請在磁碟區上執行chkMSK實用程式當NTFS無法將資料寫入交易日誌時,會觸發事件ID55的錯誤,這將導致NTFS無法完成無法寫入交易資料的操作。這種錯誤通常發生在檔案系統損壞的情況下,可能是由於磁碟上存在壞磁區或檔案系統對磁碟子系統的不

此 Apple ID 尚未在 iTunes Store 中使用:修復 此 Apple ID 尚未在 iTunes Store 中使用:修復 Jun 10, 2024 pm 05:42 PM

使用AppleID登入iTunesStore時,可能會在螢幕上拋出此錯誤提示「此AppleID尚未在iTunesStore中使用」。沒有什麼可擔心的錯誤提示,您可以按照這些解決方案集進行修復。修正1–更改送貨地址此提示出現在iTunesStore中的主要原因是您的AppleID個人資料中沒有正確的地址。步驟1–首先,開啟iPhone上的iPhone設定。步驟2–AppleID應位於所有其他設定的頂部。所以,打開它。步驟3–在那裡,打開“付款和運輸”選項。步驟4–使用面容ID驗證您的存取權限。步驟

阿里巴巴id在哪裡看 阿里巴巴id在哪裡看 Mar 08, 2024 pm 09:49 PM

在阿里巴巴軟體中,一旦您成功註冊帳號,系統就會為您指派一個獨特的ID,這個ID將作為您在平台上的身分識別。但是對於許多用戶來說,他們會想要查詢自己的ID,但是卻不知道該如何操作。那麼本站小編帶來下文中,就將為大家帶來詳細的攻略步驟介紹,希望能幫助大家!阿里巴巴id在哪裡看答案:【阿里巴巴】-【我的】。 1.首先打開阿里巴巴軟體,進入到首頁中後我們需要點擊右下角的【我的】;2、然後來到我的頁面中後我們在頁面的上方就可以看到【id】了;阿里巴巴id跟淘寶一樣嗎阿里巴巴id和淘寶id不一樣,但二

事件 ID 4660:已刪除物件 [修復] 事件 ID 4660:已刪除物件 [修復] Jul 03, 2023 am 08:13 AM

我們的一些讀者遇到了事件ID4660。他們通常不確定該怎麼做,所以我們在本指南中解釋。刪除物件時通常會記錄事件ID4660,因此我們還將探索一些實用的方法在您的電腦上修復它。什麼是事件ID4660?事件ID4660與活動目錄中的物件相關,將由下列任一因素觸發:物件刪除–每當從ActiveDirectory中刪除物件時,都會記錄事件ID為4660的安全事件。手動變更–當使用者或管理員手動變更物件的權限時,可能會產生事件ID4660。變更權限設定、修改存取等級或新增或刪除人員或群組時,可能會發生這種情

騰訊視頻id在哪裡查看 騰訊視頻id在哪裡查看 Feb 24, 2024 pm 06:25 PM

騰訊視頻id在哪裡查看?騰訊視頻APP中是有專屬的id,但是多數的用戶不知道如何查看騰訊視頻id,接下來就是小編為用戶帶來的騰訊視頻id查看方法圖文教程,感興趣的用戶快來一起看看吧!騰訊影片使用教學騰訊影片id在哪裡查看1、先開啟騰訊影片APP,主頁右下角【個人中心】進入專區;2、之後進入到個人中心頁面,選擇【設定】功能;3、然後在設定頁面,點選最下方【退出帳號】;4、最後在下圖所示的頁面即可查看到專屬的id號。

vue取得不到id屬性怎麼辦 vue取得不到id屬性怎麼辦 Jan 29, 2023 pm 02:03 PM

vue取得不到id屬性是因為將getElementById用在了「created()」鉤子函數中,而Vue尚未完成掛載;其解決方法就是將「created() {let serachBox = document.getElementById('searchBox') ;...}」程式碼遷移到「mounted()」鉤子函數中即可。

如何在Linux中尋找父進程ID (PPID) 如何在Linux中尋找父進程ID (PPID) Mar 09, 2024 am 08:01 AM

在Linux作業系統中,每個執行的程式都是一個進程,每個進程都有一個唯一的進程識別碼(PID)。同樣的,每個進程都會有一個父進程,也就是創建它的進程,父進程的識別碼稱為父進程ID(PPID)。在這篇文章中,我們將探討如何在Linux系統中找到父進程的ID,並介紹一些有效的命令和工具,以幫助您獲取有關進程之間關係的詳細資訊。在尋找父進程ID的基本命令首先,我將向大家簡要介紹幾個基本命令,這些命令可用來查看系統中運行的所有進程及其父進程ID。使用ps命令查看進程資訊ps命令是一個強大的工具,它用於報

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

See all articles