作者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/cn.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