Javascript访问html页面的控件的方法详细分析

 更新时间:2008年08月13日 10:03:57   作者:  
这段时间在公司比较的空闲,决定研究研究javascript访问html控件,这是很普遍的,这里我系统的研究javascript的访问方式,测试通过并有下面一些研究成就,供大家分享和补充。

最后我来说说getElementById和getElementsByName使用范围:
Id就像身份证号,是唯一的,name就像姓名一样可以同名。
一个元素定义了id,引用该元素时直接用id属性,而name通常用在form中,且必须由document.form.***而来,也就是说,name 属性定义的元素在脚本中是document 对象的子对象。
    1. name用于form内元素,提交需要.
       id用于form外元素好用因为   DOM   能直接取得单一元素 
    2.id 每页只能有一个
      name 可以有多个 name   有些标签不推荐用它
    3. 表单元素(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   等等。
这里我引出另一个问题,既然有了ID那为什么还要name呢?
最直接答案:ID就像是一个人身份证号,而 name就像是他的名字,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的顺序依次存在于数组中。
getElementById("xxx")返回第一个id属性为"xxx"或者特定表单元素name为"xxx"的元素
getElementsByName("xxx")返回所有id属性为"xxx"或者特定表单元素name为"xxx"的元素
这里要说明一下其实getElementById和getElementsByName取元素的范围是一样的,区别只是前者只返回第一个元素后者返回所有元素的集合 
     另外说明一下表单元素 表单元素指的是在<FORM >标签中数据可以被提交给服务器的标签
主要有 <INPUT > <SELECT > <TEXTAREA >三个标签 这三个标签只有在name属性不为空的时候才能将数据提交给服务器 所以这三种标签多定义了一个name属性 其实这个name属性和id属性是完全一样的都可以定位元素
如果不是表单元素 就算你加了name属性getElementsByName也取不到不信你自己试试.
        由于本人能力有限,希望朋友们能够及时的指出不正确的地方并及时留言我好修正,本人万分感谢! 

相关文章

  • 万物皆可柯里化的Ramda.js及传参详解

    万物皆可柯里化的Ramda.js及传参详解

    这篇文章主要为大家介绍了万物皆可柯里化的Ramda.js详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • javascript tips提示框组件实现代码

    javascript tips提示框组件实现代码

    一个简单的类似title的提示效果,但现实内容可以很丰富,以上js另存为tip.js,下面是使用的demo。
    2010-11-11
  • javascript关于运动的各种问题经典总结

    javascript关于运动的各种问题经典总结

    这篇文章主要介绍了javascript关于运动的各种问题,实例总结了javascript关于滚动的常见错误、实现方法与相关注意事项,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • 再谈Javascript中的基本类型和引用类型(推荐)

    再谈Javascript中的基本类型和引用类型(推荐)

    这篇文章主要介绍了Javascript中的基本类型和引用类型的相关资料,包括基本类型和引用类型的概念及区别,数据类型检测给大家详细介绍了js基本类型和引用类型,非常不错,需要的朋友可以参考下
    2016-07-07
  • js基于myFocus实现轮播图效果

    js基于myFocus实现轮播图效果

    这篇文章主要为大家详细介绍了js基于myFocus实现轮播图效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • JavaScript中 ES6 generator数据类型详解

    JavaScript中 ES6 generator数据类型详解

    generator 是ES6引入的新的数据类型,由function* 定义, (注意*号),接下来通过本文给大家介绍js中 ES6 generator数据类型,非常不错,感兴趣的朋友一起学习吧
    2016-08-08
  • JavaScript中arguments的使用方法

    JavaScript中arguments的使用方法

    这篇文章主要介绍了JavaScript中arguments的使用方法,arguments 是一个对应于传递给函数的参数的类数组对象。下文详细介绍,需要的小伙伴可以参考一下
    2022-05-05
  • Typescript中extends关键字的基本使用

    Typescript中extends关键字的基本使用

    extends表示具体的泛型类型只能是object类型,某个变量如果能断言成object类型[变量as object],那么这个变量的类型符合T extends object,下面这篇文章主要给大家介绍了关于Typescript中extends关键字基本使用的相关资料,需要的朋友可以参考下
    2022-08-08
  • JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果

    JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果

    这篇文章主要介绍了JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果,可实现使用JavaScript判断密码框是否获得焦点来隐藏与显示提示文字,非常简单实用,需要的朋友可以参考下
    2015-11-11
  • JS冷知识之不起眼但有用的String.raw方法

    JS冷知识之不起眼但有用的String.raw方法

    String.raw是JavaScript中模板字符串的一个标签函数,它的作用是将模板字符串不转义的原始字符串内容返回,接下来通过本文给大家介绍JS冷知识之不起眼但有用的String.raw方法,需要的朋友可以参考下
    2022-06-06

最新评论