作者sthermit ( )
看板Ajax
標題[問題] 想請問javascript的name屬性取得元件方法
時間Wed Dec 21 15:52:26 2016
各位好
剛才在網上逛逛
看JavaScript教學時,發現不太清楚的東西
麻煩各位開導小弟
剛學JavaScript時
取得元件
學到都是使用
getElementById、getElementsByName
如果
原始碼是
<form name='form' id='form'>
姓名:
<input type='text' name='name' id='name' /> E-mail:
<input type='text' name='email' id='email' />
<input type='button' name='submit' value='送出'
onclick='processFormData();' />
</form>
要取得name這的Input元件
使用 Document.getElementsByName("name")[0]
剛才看到可以直接寫
Document.form.name
有的是
Document.forms['form'].elements['name']
or
Document.form.elements['name']
or
Document.form.elements.name
請問這些寫法的差別是?
這樣的話還可以有多個同名的元件嗎?
謝謝各位
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.22.92.217
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Ajax/M.1482306749.A.6F7.html
1F:推 shadowjohn: 你只要記document.getElementsByName("OOXX") 12/21 16:28
2F:→ shadowjohn: 其他的都不建議 12/21 16:28
3F:→ shadowjohn: jquery好寫多了 $("*[name='OOXX']") 同上面那個 12/21 16:29
4F:→ shadowjohn: 不過name是可重覆名稱,可以用lenth得知有幾個同name 12/21 16:30
5F:推 ian90911: getAttribute("name") 呢 12/21 16:59
6F:→ ian90911: 回錯了 請無視...orz 12/21 16:59
7F:→ xdraculax: name 是可重複的屬性,如有多個表單,元件用到相同 nam 12/21 18:59
8F:→ xdraculax: e,可能得到非預期結果 12/21 18:59
9F:→ xdraculax: 這範例不太好 表單的 name 也叫 form,容易搞混 12/21 19:00
10F:→ xdraculax: document.form 這個 form 是 name,如果表單名稱與某 d 12/21 19:08
11F:→ xdraculax: ocument 屬性相同會有問題,document.forms['form'] 這 12/21 19:08
12F:→ xdraculax: 個 forms 是預設的表單集合,'form' 是 name,不會有與 12/21 19:08
13F:→ xdraculax: document 屬性重複的隱憂,個人偏好用 id 或 forms 12/21 19:08
14F:→ xdraculax: 明確的選取目標 12/21 19:08