| 首页 | 视觉资讯 | 平面视觉 | 环艺设计 | CG视觉 | 设计教程 | 人物 |
视觉资讯
设计资讯 网络媒体 设计征集 书刊
平面视觉
画册 包装 VI 招贴 标志 创意 文案 理论
环艺设计
建筑设计 室内设计 景观设计 家装设计
CG视觉
插画 3D视觉 动漫
设计教程
平面教程 网页教程 多媒体教程
人物
设计师 设计公司 人物访谈
您现在的位置: 第一视觉 >> 设计教程 >> 网页教程 >> Javascript教程 >> 正文
JS获取网页中HTML元素的几种方法
作者:佚名 | 文章来源:网络 | 时间:2006-11-18 【字体:

  getElementById getElementsByName getElementsByTagName 大概介绍

  getElementById ,getElementsByName ,getElementsByTagName

  后两个是得到集合,byid只是得到单个对象

  getElementById 的用法

  举个例子:

  <a id="link1" name="link1" href=http://www.vision1.cn>网页教学网</a>

  同一页面内的引用方法:

  1、使用id:

  link1.href,返回值为http://www.vision1.cn

  2、使用name:

  document.all.link1.href,返回值为http://www.vision1.cn

  3、使用sourseIndex:

  document.all(4).href //注意,前面还有HTML、HEAD、TITLE和BODY,所以是4

  4、使用链接集合:

  document.anchors(0).href

  //全部的集合有all、anchors、applets、areas、attributes、behaviorUrns、bookmarks、boundElements、cells、childNodes、children、controlRange、elements、embeds、filters、forms、frames、images、imports、links、mimeTypes、options、plugins、rows、rules、scripts、styleSheets、tBodies、TextRectangle,请参考MSDN介绍。

  其实方法3和方法4是一样使用的集合,只是一个是all,可以包括页面所有标记,而anchors只包括链接。

  5、getElementById:

  document.getElementById("link1").href

  6、getElementsByName:

  document.getElementsByName("link1")[0].href //这也是一个集合,是所有name等于该方法所带参数的标记的集合

  7、getElementsByTagName:

  document.getElementsByTagName("A")[0].href //这也是一个集合,是所有标记名称等于该方法所带参数的标记的集合

  8、tags集合:

  document.all.tags("A")[0].href

  //与方法7一样是按标记名称取得一个集合

  除此之外:

  event.scrElement可以获得触发时间的标记的引用;

  document.elementFromPoint(x,y)可以获得x和y坐标处的元素的引用;

  document.body.componentFromPoint(event.clientX,event.clientY)可以获得鼠标所在处元素的引用;

  还可以通过元素的父子节点和兄弟节点关系来引用,如nextSibling(当前节点的后一节点)、previousSibling(当前节点的前一节点)、childNodes、children、firstChild、lastChild、parentElement等都是父子节点和兄弟节点的一些引用;还不仅限于此。

  上面是同一页面内的常见引用方法,另外还涉及到不同页面中的

  getElementsByName返回的是所有name为指定值的所有元素的集合

  “根据 NAME 标签属性的值获取对象的集合。”

  集合比数组要松散的多, 集合里每个子项的类型可以不同, 集合只是把某些元素放在一起作为一类来使用, 相比之下数组就严格多了, 每个子项都是统一的类型. document.getElementsByName, document.getElementsByTagName, document.formName.elements 这类方法所得到的结果都是集合.

  例:

<html>
<head>
<title>fish</title>
<script language="javascript">
function get(){
var xx=document.getElementById("bbs")
alert("标记名称:"+xx.tagName);
}
function getElementName(){
var ele = document.getElementsByName("happy");
alert("无素为happy的个数:" + ele.length);
}
</script></head>
<body>
<h2 id="bbs">获取文件指定的元素</h2>
<hr>
<form>
<input type="button" onclick="get()" value="获取标题标记">
<input type="button" name="happy" onclick="getElementName()" value="click "><input type="button" name="happy" onclick="getElementName()" value="click "><input type="button" name="happy" onclick="getElementName()" value="click "><input type="button" name="happy" onclick="getElementName()" value="click "><input type="button" name="happy" onclick="getElementName()" value="click ">
</form>
</body>
</html>

  document.getElementsByName()这个方法.它对一个和多个的处理是一样的,我们可以用:

  Temp = document.getElementsByName('happy')来引用

  当Temp只有1个的时候,那么就是Temp[0],有多个的时候,用下标法Temp[i]循环获取

  也有例外:

  在ie 中getElementsByName(“test“)的时候返回的是id=test的object数组,而firefox则返回的是name= test的object的数组。

  按照w3c的规范应该是返回的是name= test的object的数组。

  firefox和ie中的getElementByID相同:获取对 ID 标签属性为指定值的第一个对象的引用。

  注意getElementsByName 有s在里面

  document.getElementById()可以控制某个id的tag

  document.getElementsByName(),返回的是一个具有相同 name 属性的元素的集合,而不是某个,注意有“s”。

  而 document.getElementsByTagName() 返回的是一组相同 TAG 的元素集合。

  同一个name可以有多个element,所以用document.getElementsByName("theName")

  他return 一个collection,引用的时候要指名index

  var test = document.getElementsByName('testButton')[0];

  id那个,是唯一的

  还应该注意:对类似

没有name属性,对它name属性为伪属性document.getElementsByName() 会失效,当然TD可以设置ID属性,然后用 document.getElementsByID("DDE_NODAY"); 调用

  • 上一篇文章:

  • 下一篇文章:
  • 相关文章
    没有相关文章
    版权申明:
       转载请不要修改任何文字图片链接信息。如需使用本站作品,请与原作者联系,版权归原作者所有。
       第一视觉(www.vision1.cn)依法保护知识产权,如果我们的文章有涉及或侵犯您的有关权益,请联系我站编辑人员,注明网址及文章,我们会即时处理或删除!
    最新热门文章
    普通文章用javascript 将gb2312编码转utf-8编码
    普通文章JavaScript方法和技巧大全
    普通文章JavaScript的document和window对象详解
    普通文章脚本代码:实例解析Js+XML的操作方法
    关于我们 | 联系我们 | 版权声明 | 免责声明 | 网站地图
    版权所有 © 2006-2007 第一视觉(Vision1.cn)
    Copyright © 2006-2007 Vision1.cn All rights reserved