`
shirlly
  • 浏览: 1652391 次
  • 性别: Icon_minigender_2
  • 来自: 福州
社区版块
存档分类
最新评论

document.getElementById与getElementByName的区别

阅读更多
1:id   就像身分证号,是唯一的,   name   就像姓名一样可以同名  

2:一个元素定义了   id   ,引用该元素时直接用   id   属性,而   name   通常用在   form   中,且必须由   document.form.***   而来,也就是说,   name   属性定义的元素在脚本中是   document   对象的子对象。  

3:name   用于   form   内元素,提交需要  

id   用于   form   外元素好用因为   DOM   能直接取得单一元素  
document.getElementById( "id_Number ")   得到的是单个元素  

document.getElementsByName( "name ")   得到的是数组  


4:id   每页只能有一个  

name   可以有多个  

name   有些标签不推荐用它  

取得   id   :document.getElementById( "idname ")  

取得   name   :   document.getElementsByName( "name ")[0?1?2?3?....]  

5: 表单元素   (form   input   textarea   select)   与框架元素   (iframe   frame)   用   name  

这些元素都与表单   (   框架元素作用于   form   的   target)   提交有关   ,   在表单的接收页面只  

接收有   name   的元素   ,   赋   ID   的元素通过表单是接收不到值的   ,   你自己可以验证一下   .  

有一个例外   :   A   可以赋   name   作为锚点   ,   也可以赋   ID   ;  

   

只能赋   ID   不能赋   name   的元素     除去与表单相关的元素都只能赋   ID)  

body   li   table   tr   td   th   p   div   span   pre   dl   dt   dd   font   b   等等。  

6:几乎每个做过   Web   开发的人都问过,到底元素的   ID   和   Name   有什么区别阿?为什么有了   ID   还要有   Name   呢   ?   而同样我们也可以得到最   classical   的答案:   ID   就像是一个人的身份证号码,而   Name   就像是他的名字,   ID   显然是唯一的,而   Name   是可以重复的。  

  上周我也遇到了   ID   和   Name   的问题,在页面里输入了一个   input   type= "hidden "   ,只写了一个   ID= 'SliceInfo '   ,赋值后   submit   ,在后台用   Request.Params[ "SliceInfo "]   却怎么也去不到值。后来恍然大悟因该用   Name   来标示,于是在   input   里加了个   Name= 'SliceInfo '   ,就一切   ok   了。  

   第一段里对于   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:     建立页面中的锚点,我们知道   <a   href= "URL "> link </a>   是获得一个页面超级链接,如果不用   href   属性,而改用   Name   ,如:   <a   name= "PageBottom "> </a>   ,我们就获得了一个页面锚点。  

  用途   4:     作为对象的   Identity   ,如   Applet   、   Object   、   Embed   等元素。比如在   Applet   对象实例中,我们将使用其   Name   来引用该对象。  


  用途   5:     在   IMG   元素和   MAP   元素之间关联的时候,如果要定义   IMG   的热点区域,需要使用其属性   usemap   ,使   usemap= "#name "(   被关联的   MAP   元素的   Name)   。  

  用途   6:     某些特定元素的属性,如   attribute   ,和   param   。例如为   Object   定义参数   <PARAM   NAME   =   "appletParameter "   VALUE   =   "value ">   。  


  显然这些用途都不是能简单的使用   ID   来代替掉的,所以   HTML   元素的   ID   和   Name   的却别并不是身份证号码和姓名这样的区别,它们更本就是不同作用的东西。  

  当然   HTML   元素的   Name   属性在页面中也可以起那么一点   ID   的作用,因为在   DHTML   对象树中,我们可以使用   document.getElementsByName   来获取一个包含页面中所有指定   Name   元素的对象数组。 

  在这里顺便说一下,要是页面中有   n(n> 1)   个   HTML   元素的   ID   都相同了怎么办?在   DHTML   对象中怎么引用他们呢?如果我们使用   ASPX   页面,这样的情况是不容易发生的,因为   aspnet   进程在处理   aspx   页面时根本就不允许有   ID   非唯一,这是页面会被抛出异常而不能被正常的   render   。要是不是动态页面,我们硬要让   ID   重复那   IE   怎么搞呢?  


  这个时候我们还是可以继续使用   document.getElementById   获取对象,只不过我们只能获取   ID   重复的那些对象中在   HTML   Render   时第一个出现的对象。而这时重复的   ID   会在引用时自动变成一个数组,   ID   重复的元素按   Render   的顺序依次存在于数组中。 
分享到:
评论
1 楼 nettang 2008-09-23  
public class{}

相关推荐

    没有document.getElementByName方法

    在讨论`document.getElementByName`方法时,首先要澄清一点,那就是实际上并没有这个方法。可能有些开发者会混淆它与`document.getElementsByName`。 `document.getElementsByName`是JavaScript中一个非常有用的...

    JavaScript中document.forms[0]与getElementByName区别

    本文将详细介绍document.forms[0]和getElementByName两种方法的区别和具体使用场景。 首先,document.forms[0]代表文档中第一个表单元素,是一个NodeList类型的数组。这个数组包含了页面上所有的form元素,如果页面...

    document.all与getElementById、getElementsByName、getElementsByTagName用法区别-document.all第1/2页

     Document.All Example        Example Heading     This is a paragraph. It is only a paragraph.   Yet another paragraph.   This final paragraph has special emphasis.         [Ctrl+A 全选 ...

    php课后习题及答案php

    document.getElementByName(”元素名”):错误,应为 document.getElementsByName()。 - C. document.getElementByTagName(”标记名”):错误,应为 document.getElementsByTagName()。 - D. 以上都可以:错误,B...

    采集基本概念Web信息检索与数据抓取网页DOM结构优秀文档.pptx

    例如,`document.getElementById('myDiv')`将返回ID为'myDiv'的元素。 3. **getElementByName**: 在较旧的HTML版本中,这个方法用于获取具有相同name属性的元素集合,但在HTML5中,通常推荐使用类选择器或数据属性...

    html_document对象

    HTML中的`document`对象是JavaScript与网页内容交互的核心接口,它是`window`对象的一个属性,提供了访问和操作HTML文档的方法和属性。通过`document`对象,开发者可以动态地创建、修改或查询页面上的元素,实现丰富...

    第二阶段试题.docx

    8. DOM对象与函数:`getElementById()`是`document`对象的方法,`screen`、`getElementByName()`和`history`不是。 9. 会话管理:在Web开发中,`Session`对象常用于实现会话跟踪。 10. Servlet配置:`servlet-...

    php课后习题及答案[文].pdf

    `document.getElementByName(” 元素名” )` - C. `document.getElementByTagName(” 标记名” )` - D. 以上都可以 - **解析**: - 在JavaScript中,可以通过`getElementById`获取具有特定ID的元素,通过`...

    Web前端开发工程师笔试题-CSS+Javascript.doc

    3. Document对象的常用方法:getElementById、getElementByName等 五、CSS布局和样式 1. CSS布局方式:绝对定位、相对定位、浮动布局等 2. CSS样式属性:width、height、background-color等 3. CSS样式表的继承和...

    第二阶段试题.pdf

    8. DOM对象:`document`对象是浏览器对象模型的一部分,`getElementById()`和`getElementByName()`是它的方法,但`screen`和`history`不是,选项B和D错误。 9. 会话管理:`Session`对象在Web开发中用于实现会话跟踪...

    Dom文档对象模型-2010版

    比如`document.getElementById()`, `getElementsByTagName()`, `getElementByName()`等,这些都是HTML DOM特有的方法。 3. **节点类型**: 在DOM中,有多种类型的节点,包括元素节点(Element Node)、属性节点...

    LabVIEW实现网页数据提取和交互

    使用`getElementByTagName`、`getElementByName`或`getElementById`等方法定位到表单元素,并填充表单数据。 - **Demo5**: 实现网页登录。结合前面的知识点,完成账号密码的填写和提交过程。 #### 六、高级应用 - *...

    Dom要点归纳

    ### DOM要点归纳与详解 #### 一、DOM基础概念与操作 **DOM(Document Object Model)**,文档对象模型,是HTML和XML文档的API,它定义了如何访问和修改这些文档中的数据和结构。在JavaScript中,DOM提供了一种在...

    最新的web面试题及参考答案.docx

    例如,`getElementById`、`getElementsByTagName`、`getElementByName`等方法用于查找特定的节点。 问答题解答: 1、问:一个人花8块钱买了一只鸡,9块钱卖掉了,然后他觉得不划算,花10块钱又买回来了,11块钱卖...

    Javascript显示和隐藏ul列表的方法

    在这其中,我们可以通过document.getElementById()方法获取页面上的特定元素。根据提供的内容,可以看到代码示例中正是利用了这个方法来首先判断页面上是否存在id为"rightNav"的ul元素。 其次,使用...

    javascrip经典试题

    - `getElementByName()` 在现代浏览器中已不再支持,应使用 `getElementsByName()`。 10. JavaScript 中的DOM操作: - `getElementById()` 获取ID唯一的元素,不返回集合。 - `getElementsByName()` 和 `...

    javascript操作BOM对象.docx

    * `getElementById()`:返回拥有指定 id 的第一个对象的引用(对象的 id 唯一)。 * `getElementByName()`:返回带有指定名称的对象的集合(相同 name 属性)。 * `getElementByTagName()`:返回带有指定标签名的...

    jQuery入门-2015

    - `getElementByName("name")`:根据名称获取多个元素。 - `getElementByTagName("tagname")`:根据标签名获取多个元素。 5. **选择器分类**:jQuery选择器主要包括基本选择器、层次选择器、过滤选择器和表单选择...

    用UIAutomation封装了很多实用的方法

    GetElementByID 获取父自动化元素下指定元素控件ID的引用 GetElementByName 获取父自动化元素下的指定子元素的引用 GetElementsByControlType 获取父自动化元素下的特定类型的所有自动化元素 ...

Global site tag (gtag.js) - Google Analytics