Javascript访问html页面的控件的方法详细分析第1/2页

 更新时间:2008年08月13日 10:03:57   作者:  
这段时间在公司比较的空闲,决定研究研究javascript访问html控件,这是很普遍的,这里我系统的研究javascript的访问方式,测试通过并有下面一些研究成就,供大家分享和补充。
下面切入正题:
   访问控件的主要对象是:document对象。分别对应当前文档所有的(子对象)个人观点。并且已经提供的几个主要方法来访问对象。
1.       document.getElementById
2.       document.getElementsByName 
3           document.getElementsByTagName
4           document.all
下面我主要谈谈以上几个方法的具体用法:
  一.首先我来谈谈document.getElementById的用法。
Var obj=document.getElementById(“ID”) 根据指定的ID属性值得到对象。返回id属性值等于ID的第一个对象的引用。假如对应的为一组对象,则返回该组对象中的第一个。
<input name=”a” type=”text” id=”b”/>
<input name=”b” type=”text” id=”a”/>  
<input type=”button” name=”submint1” value=”text1” onclick=:”alert(document.getElementById(“b”)/>)”<input type=”button” name=”submint2” value=”text2” onclick=”alert(document.getElementById(“a”)/>)”我在IE中测试了上面代码,在第一个文本框中输入1,在第二个文本中输入2,然后点击两个按钮,大吃一斤。结果两个按钮都返回了第一个文本框的值。这说明了IE执行document.getElementById(elementName)的时候,返回的是第一个name或者id等于elementName的对象,并不是根据ID来查找的。
但相反我在firefox中就不存在这个问题。Firefox执行document.getElementById(elementName)的时候只能查找ID等于elementName对象,如果不存在在返回null.
二.下面看看document.getElementsByName的用法。
Var obj=document.getElementsByName(“Name”)根据Name属性的值获取对象集合。返回name等于指定Name对象的集合。注意这里返回的是一个集合,包括只有一个元素的情况也是一个集合。
document.getElementsByName("name")[0?1?2?3?....] 这样来获取某一个元素。注意javascript中的集合取一个值可以用[],也可以用(),(本人测试通过,但没有资料这么写)。
如:
<script>
function prop()

var objs=document.getElementsByName("a");
alert(objs(0).value);//或者可以alert(objs[0].value)也正确的。
}
</script>
<input type="text" name="a" id="b" value="this is textbox"/>
<input type="button" value="testing" onclick="prop()"/>
三.Document.getElementsByTagName的用法:
Var ojbs=document.getElementsByTagName(“Tag”)根据基于指定元素名称对象的集合。返回Tag属性等于指定Tag标记的集合。这里也返回的是一个集合。(同上)
四.document.all用法。
document.all是页面内所有元素的一个集合。例如:
document.all(0)表示页面的第一个元素。
Document.all(“txt”)表示页面上id或name等于txt的所有对象的单个元素和集合元素。
如果页面上的id或name等于txt只有一个元素(包括name和id情况),那么document.all()的结果就只是一个元素,反之就是获取一个集合。(综合了document.getElementById和document.getElementsByName的各自的特点)。
也可以这样写:document.all.txt也是一样。
例如:
<input   name=aaa   value=aaa>
<input   id=bbb   value=bbb>
 <script   language=Jscript>
      alert(document.all.aaa.value)     //根据name取value 
      alert(document.all.bbb.value)     //根据id取value 
 </script>
代码2:
 但是常常name可以相同(如:用checkbox取用户的多项爱好的情况)
 <input   name=aaa   value=a1> 
 <input   name=aaa   value=a2>  
 <input   id=bbb   value=bbb>  
 <script   language=Jscript>  
     alert(document.all.aaa(0).value)//显示a1
     alert(document.all.aaa(1).value)//显示a2 
     alert(document.all.bbb(0).value)//这行代码会失败   
 </script>  
理论上一个页面中的ID是互不相同的,如果出现不同的tags而有相同的id的话,document.all.id就会失败,就象这样:<input   id=aaa   value=a1> 
 <input   id=aaa   value=a2>
 <script   language=Jscript> 
      alert(document.all.aaa.value)//显示undefined而不是a1或者a2
 </script>
所以说遇到了这种情况的话用下面这种写法:
 <input   id=aaa   value=aaa1> 
 <input   id=aaa   value=aaa2>
 <input   name=bbb   value=bbb>
 <input   name=bbb   value=bbb2>
 <input   id=ccc   value=ccc>
 <input   name=ddd   value=ddd> 
 <script   language=Jscript>
alert(document.all("aaa",0).value)
alert(document.all("aaa",1).value)
alert(document.all("bbb",0).value)
alert(document.all("bbb",1).value)
alert(document.all("ccc",0).value)
alert(document.all("ddd",0).value) 
 </script>
另外document.all可以判断浏览器的种类是否是IE,
document.all---------针对IE
document.layers------------针对Netscape
这两个集合.all只在ie里面有效,layers只在nc里面有效
所以就可以通过这个方式来判断不同的浏览器。

相关文章

  • 万物皆可柯里化的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

最新评论