LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

document.getElementById与getElementByName的区别

admin
2010年7月14日 1:36 本文热度 5688
1:id 就像身分证号,是唯一的, name 就像姓名一样可以同名 [br][br]2:一个元素定义了 id ,引用该元素时直接用 id 属性,而 name 通常用在 form 中,且必须由 document.form.*** 而来,也就是说, name 属性定义的元素在脚本中是 document 对象的子对象。 [br][br]3:name 用于 form 内元素,提交需要 [br][br]id 用于 form 外元素好用因为 dom 能直接取得单一元素 [br][color=red]document.getelementbyid( "id_number ") 得到的是单个元素 [br][br]document.getelementsbyname( "name ") 得到的是数组 [/color][br][br]4:id 每页只能有一个 [br][br]name 可以有多个 [br][br]name 有些标签不推荐用它 [br][br]取得 id :document.getelementbyid( "idname ") [br][br]取得 name : document.getelementsbyname( "name ")[0?1?2?3?....] [br][br]5: 表单元素 (form input textarea select) 与框架元素 (iframe frame) 用 name [br][br]这些元素都与表单 ( 框架元素作用于 form 的 target) 提交有关 , 在表单的接收页面只 [br][br]接收有 name 的元素 , 赋 id 的元素通过表单是接收不到值的 , 你自己可以验证一下 . [br][br]有一个例外 : a 可以赋 name 作为锚点 , 也可以赋 id ; [br][br] [br][br]只能赋 id 不能赋 name 的元素 除去与表单相关的元素都只能赋 id) [br][br]body li table tr td th p div span pre dl dt dd font b 等等。 [br][br]6:几乎每个做过 web 开发的人都问过,到底元素的 id 和 name 有什么区别阿?为什么有了 id 还要有 name 呢 ? 而同样我们也可以得到最 classical 的答案: id 就像是一个人的身份证号码,而 name 就像是他的名字, id 显然是唯一的,而 name 是可以重复的。 [br][br]上周我也遇到了 id 和 name 的问题,在页面里输入了一个 input type= "hidden " ,只写了一个 id= 'sliceinfo ' ,赋值后 submit ,在后台用 request.params[ "sliceinfo "] 却怎么也去不到值。后来恍然大悟因该用 name 来标示,于是在 input 里加了个 name= 'sliceinfo ' ,就一切 ok 了。 [br][br] 第一段里对于 id 和 name 的解答说的太笼统了,当然那个解释对于 id 来说是完全对的,它就是 client 端 html 元素的 identity 。而 name 其实要复杂的多,因为 name 有很多种的用途,所以它并不能完全由 id 来代替,从而将其取消掉。 [br][br][br]  具体用途有: [br]  用途 1: 作为可与服务器交互数据的 html 元素的服务器端的标示,比如 input 、 select 、 textarea 、和 button 等。我们可以在服务器端根据其 name 通过 request.params 取得元素提交的值。 [br][br]  用途 2: html 元素 input type= 'radio ' 分组,我们知道 radio button 控件在同一个分组类, check 操作是 mutex 的,同一时间只能选中一个 radio ,这个分组就是根据相同的 name 属性来实现的。 [br]  用途 3: 建立页面中的锚点,我们知道 link 是获得一个页面超级链接,如果不用 href 属性,而改用 name ,如: ,我们就获得了一个页面锚点。 [br][br]  用途 4: 作为对象的 identity ,如 applet 、 object 、 embed 等元素。比如在 applet 对象实例中,我们将使用其 name 来引用该对象。 [br][br][br]  用途 5: 在 img 元素和 map 元素之间关联的时候,如果要定义 img 的热点区域,需要使用其属性 usemap ,使 usemap= "#name "( 被关联的 map 元素的 name) 。 [br][br]  用途 6: 某些特定元素的属性,如 attribute ,和 param 。例如为 object 定义参数 。 [br][br][br]  显然这些用途都不是能简单的使用 id 来代替掉的,所以 html 元素的 id 和 name 的却别并不是身份证号码和姓名这样的区别,它们更本就是不同作用的东西。 [br][br]  当然 html 元素的 name 属性在页面中也可以起那么一点 id 的作用,因为在 dhtml 对象树中,我们可以使用 document.getelementsbyname 来获取一个包含页面中所有指定 name 元素的对象数组。 [br][br]  在这里顺便说一下,要是页面中有 n(n> 1) 个 html 元素的 id 都相同了怎么办?在 dhtml 对象中怎么引用他们呢?如果我们使用 aspx 页面,这样的情况是不容易发生的,因为 aspnet 进程在处理 aspx 页面时根本就不允许有 id 非唯一,这是页面会被抛出异常而不能被正常的 render 。要是不是动态页面,我们硬要让 id 重复那 ie 怎么搞呢? [br][br][br]  这个时候我们还是可以继续使用 document.getelementbyid 获取对象,只不过我们只能获取 id 重复的那些对象中在 html render 时第一个出现的对象。而这时重复的 id 会在引用时自动变成一个数组, id 重复的元素按 render 的顺序依次存在于数组中。

该文章在 2010/7/14 1:36:51 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved