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

下面切入正题:
   访问控件的主要对象是: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里面有效
所以就可以通过这个方式来判断不同的浏览器。

当前1/2页 12下一页阅读全文

(0)

相关推荐

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

    下面切入正题:    访问控件的主要对象是:document对象.分别对应当前文档所有的(子对象)个人观点.并且已经提供的几个主要方法来访问对象. 1.       document.getElementById 2.       document.getElementsByName  3           document.getElementsByTagName 4           document.all 下面我主要谈谈以上几个方法的具体用法:   一.首先我来谈谈document.

  • Javascript 遍历页面text控件详解

    以下函数实现了列出页面中所有html控件类型为text的控件ID 复制代码 代码如下: function Texts()         {              //var els= document.getElementsByTagName("*");   //els得到页面所有控件              var els= document.getElementsByTagName("INPUT"); //上面的也可,这样可以减少循环          

  • JS获取页面input控件中所有text控件并追加样式属性

    如题,将使用jquery来在页面加载时获取页面input控件中所有text控件并添加样式. 以前写过的页面上所使用的text控件width属性太小需要改动,改动牵扯页面上所有text的属性,改动每个控件的width感觉会很麻烦,所以就想通过在页面加载的时候将要改动的text找到并添加属性. 首先先写了一个css样式: 复制代码 代码如下: .wid { width:205px; } 在页面加载中所写的代码如下: $("input[type=text]").addClass("

  • ASP.NET中访问DataGrid中所有控件值的方法

    本文实例讲述了ASP.NET中访问DataGrid中所有控件值的方法.分享给大家供大家参考,具体如下: <%@ Page Language="C#" %> <%@ import Namespace="System.Collections" %> <script runat="server"> void Page_Load(Object sender, EventArgs e) { if(!Page.IsPost

  • C#多线程与跨线程访问界面控件的方法

    本文实例讲述了C#多线程与跨线程访问界面控件的方法.分享给大家供大家参考.具体分析如下: 在编写WinForm访问WebService时,常会遇到因为网络延迟造成界面卡死的现象.启用新线程去访问WebService是一个可行的方法. 典型的,有下面的启动新线程示例: 复制代码 代码如下: private void LoadRemoteAppVersion()  {      if (FileName.Text.Trim() == "") return;      StatusLabel

  • javascript模拟评分控件实现方法

    本文实例讲述了javascript模拟评分控件实现方法.分享给大家供大家参考.具体实现方法如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>动态设置style(评分效果)</titl

  • ASP.NET动态添加用户控件的方法

    本文实例讲述了ASP.NET动态添加用户控件的方法.分享给大家供大家参考.具体实现方法如下: 为了让用户控件能ASP.NET页面实现动态添加,首先写一个接口IGetUCable,这个接口有一个函数,返回对象类型是UserControl. using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; /// <summary> /// Summar

  • Android省市区三级联动控件使用方法实例讲解

    最近有需求需要实现省市区三级联动,但是发现之前的实现不够灵活,自己做了一些优化.为了方便以后使用,抽离出来放在了github上WheelView.同时把其核心库放在了JCenter中了,可以直接引用.也可以参考项目中的Demo进行引用 下面介绍一下如何使用 如果用的是AndroidStudio那么直接在build.gradle文件中添加依赖: dependencies { compile 'chuck.WheelItemView:library:1.0.1' } 成功引入库之后,可以在需要弹出省

  • Android动态添加设置布局与控件的方法

    本文实例讲述了Android动态添加设置布局与控件的方法.分享给大家供大家参考,具体如下: 有时候我们会在代码端,动态的设置,添加布局和控件.下面我们就看来看一下如何处理,直接上代码,代码里面的注解很清楚了. 布局文件:fragment_hot.xml 说明:这个部局,我用的是scrollView做为基础布局,主要是为了实现一个滚动.这里不多说,这个你可以使用任何布局都可以,这里的id我是提前定义的. 这里面的现在有的布局是我为了看到我在代码端,动态添加的代码,是否可以追加到现有布局的后面而加上

  • C#子线程更新UI控件的方法实例总结

    本文实例总结了C#子线程更新UI控件的方法,对于桌面应用程序设计的UI界面控制来说非常有实用价值.分享给大家供大家参考之用.具体分析如下: 一般在winform C/S程序中经常会在子线程中更新控件的情况,桌面程序UI线程是主线程,当试图从子线程直接修改控件属性时会出现"从不是创建控件的线程访问它"的异常提示. 跨线程更新UI控件的常用方法有两种: 1.使用控件自身的invoke/BeginInvoke方法 2.使用SynchronizationContext的Post/Send方法更

随机推荐