[問題] 想請問javascript的name屬性取得元件方法

作者: sthermit ( )   2016-12-21 15:52:26
各位好
剛才在網上逛逛
看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
請問這些寫法的差別是?
這樣的話還可以有多個同名的元件嗎?
謝謝各位
作者: shadowjohn (轉角遇到愛)   2016-12-21 16:28:00
你只要記document.getElementsByName("OOXX")其他的都不建議jquery好寫多了 $("*[name='OOXX']") 同上面那個不過name是可重覆名稱,可以用lenth得知有幾個同name
作者: ian90911 (xopowo)   2016-12-21 16:59:00
getAttribute("name") 呢回錯了 請無視...orz
作者: xdraculax (首席怪叔叔)   2016-12-21 18:59:00
name 是可重複的屬性,如有多個表單,元件用到相同 name,可能得到非預期結果這範例不太好 表單的 name 也叫 form,容易搞混document.form 這個 form 是 name,如果表單名稱與某 document 屬性相同會有問題,document.forms['form'] 這個 forms 是預設的表單集合,'form' 是 name,不會有與document 屬性重複的隱憂,個人偏好用 id 或 forms明確的選取目標

Links booklink

Contact Us: admin [ a t ] ucptt.com