js获取HTML元素节点方法

上传人:大米 文档编号:478080666 上传时间:2023-02-24 格式:DOCX 页数:7 大小:17.26KB
返回 下载 相关 举报
js获取HTML元素节点方法_第1页
第1页 / 共7页
js获取HTML元素节点方法_第2页
第2页 / 共7页
js获取HTML元素节点方法_第3页
第3页 / 共7页
js获取HTML元素节点方法_第4页
第4页 / 共7页
js获取HTML元素节点方法_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《js获取HTML元素节点方法》由会员分享,可在线阅读,更多相关《js获取HTML元素节点方法(7页珍藏版)》请在金锄头文库上搜索。

1、Javascript获取网页中HTML元素的集中方法分析getElementByld getElementsByName getElementsByTagName 大概介绍getElementByld , getElementsByName , getElementsByTagName后两个是得到集合,byid只是得到单个对象getElementByld 的用法举个例子: 网页陶吧v/ a同一页面内的引用方法:1、使用id:linkl.href,返回值为 http:/2、使用 name:document.all.linknamel.href,返回值为 http:/3、使用 sourseInde

2、x:document.all(4).href /注意,前面还有 HTML、HEAD、TITLE 和 BODY,所以是 44、使用链接集合:docume nt.a nchors(0).href全部的集合有 all、anchors、applets、areas、attributes、behaviorUrns、bookm arks、boundElements、cells、childNodes、children、controlRange、elements、emb eds、filters forms、frames、images、imports、links、mimeTypes、options、plugi n

3、s、rows、rules、scripts、styleSheets、tBodies、TextRectangle,请参考 MSDN 介绍。其实方法3和方法4是一样使用的集合,只是一个是all,可以包括页面所有标记,而anchors只包括链接。5、getElementByld:docume nt.getEleme ntById(li nk1).href6、getElementsByName:document.getElementsByName(linkname1)0.href /这也是一个集合,是所有 n ame等于该方法所带参数的标记的集合7、getElementsByTagName:docume

4、 nt.getEleme ntsByTagName(A)O.href / 这也是一个集合,是所有标记名 称等于该方法所带参数的标记的集合8、tags 集合:docume nt.all.tags(A)O.href与方法7一样是按标记名称取得一个集合除此之外:event.scrElement可以获得触发时间的标记的引用;document.elementFromPoint(x,y)可以获得x和y坐标处的元素的引用;docume p onen tFromPo in t(eve nt.clie ntX,eve nt.clie ntY)可以获得鼠标 所在处元素的引用;还可以通过元素的父子节点和兄弟节点关系

5、来引用,如nextSibling(当前节点的后一节 点)、previousSibling(当前节点的前一节点)、childNodes、children、firstChild、lastChil d、parentElement等都是父子节点和兄弟节点的一些引用;还不仅限于此。上面是同一页面内的常见引用方法,另外还涉及到不同页面中的getElementsByName返回的是所有name为指定值的所有元素的集合根据NAME标签属性的值获取对象的集合。”集合比数组要松散的多,集合里每个子项的类型可以不同,集合只是把某些元素放在一起作 为一类来使用,相比之下数组就严格多了,每个子项都是统一的类型.docu

6、ment.getElement sByName, document.getElementsByTagName, document.formName.elements 这 类方法所得到的结果都是集合.例:田日Codedocume nt.getEleme ntsByName()这个方法.它对一个和多个的处理是一样的,我们可以 用:Temp = docume nt.getEleme ntsByName(happy)来引用当Temp只有1个的时候,那么就是Temp0,有多个的时候,用下标法Tempi循环获取也有例外:在 ie 中 getElementsByName(test“)的时候返回的是 id=t

7、est 的 object 数组,而 firefox则返回的是name= test的object的数组。按照w3c的规范应该是返回的是name= test的object的数组。firefox和ie中的getElementBylD相同:获取对ID标签属性为指定值的第一个对象的引 用。注意getElementsByName 有s在里面document.getElementById()可以控制某个 id 的 tagdocument.getElementsByName(),返回的是一个具有相同name属性的元素的集合, 而不是某个,注意有“s”。而 document.getElementsByTagNa

8、me() 返回的是一组相同 TAG 的元素集合。同 一 个 name 可 以 有 多 个 element , 所 以 用 document.getElementsByName(theName)他return 一个collection,引用的时候要指名indexvar test = document.getElementsByName(testButton)0;id 那个,是唯一的还应 该 注意 : 对 类似没有 name 属 性,对它 name 属 性为伪属 性 document.getElementsByName() 会失效,当然 TD 可以设置 ID 属性JavaScript获取HTML

9、DOM节点元素的方法的总结在Web应用程序特别是Web2.0程序开发中,经常要获取页面中某个元素,然后更新该元素 的样式、内容等。如何获取要更新的元素,是首先要解决的问题。令人欣慰的是,使用JavaScript 获取节点的方法有很多种,这里简单做一下总结(以下方法在IE7和Firefox2.0.0.11测试通 过):1.通过顶层document节点获取:(1) document.getElementById(elementId):该方法通过节点的 ID,可以准确获得需要的元素,是比较简单快捷的方法。如果页面上含有多个相同id的节点,那么只 返回第一个节点。如今,已经出现了如prototype、

10、Mootools等多个JavaScript库,它们提供了更 简便的方法:$(id),参数仍然是节点的id。这个方法可以看作是document.getElementById() 的另外一种写法,不过$()的功能更为强大,具体用法可以参考它们各自的API文档。(2) document.getElementsByName(elementName):该方法是通过节点的name获取节点,从名字可以看出,这个方法返回的不是一个节点元素,而是具有同样名 称的节点数组。然后,我们可以通过要获取节点的某个属性来循环判断是否为需要的节点。例如:在HTML中checkbox和radio都是通过相同的name属性值,

11、来标识一个 组内的元素。如果我们现在要获取被选中的元素,首先获取改组元素,然后循环判断是节点的 checked属性值是否为true即可。(3) document.getElementsByTagName(tagName):该方法是通过节点的Tag获取节点,同样该方法也是返回一个数组,例如:docume nt.getEleme ntsByTagName(A)将会返回页面上所有超链接节点。在获取节点之前,一般都是知道节点的类型的,所以使用该方法比较简单。但是缺点也是显而易见,那就是返 回的数组可能十分庞大,这样就会浪费很多时间。那么,这个方法是不是就没有用处了呢?当然 不是,这个方法和上面的两个不

12、同,它不是document节点的专有方法,还可以应用其他的节 点,下面将会提到。2、通过父节点获取:(1) parentObj.firstChild:如果节点为已知节点(parentObj)的第一个子节点就可以使用这个方法。这个属性是可以递归使用的,也就是支持parentObj.firstChild.firstChild.firstChild的形式,如此就可以获得更深层次的节点。(2) parentObjlastChild:很显然,这个属性是获取已知节点(parentObj)的 最后一个子节点。与firstChild 一样,它也可以递归使用。在使用中,如果我们把二者结合起来,那么将会达到更加令

13、人兴奋的效果,即:pare ntObj.firstChild.lastChild .l astChild.(3) parentObj.childNodes:获取已知节点的子节点数组,然后可以通过循环或 者索引找到需要的节点。注意:经测试发现,在IE7上获取的是直接子节点的数组,而在Firefox2.0.0.11上获取的是 所有子节点即包括子节点的子节点。(4) parentObj.children:获取已知节点的直接子节点数组。注意:经测试,在IE7上,和childNodes效果一样,而Firefox2.0.0.11不支持。这也是为 什么我要使用和其他方法不同样式的原因。因此不建议使用。(5)

14、 parentObj.getElementsByTagName(tagName):使用方法不再赘述,它返回已知节点的所有子节点中类型为指定值的子节点数组。例如:pare ntObj.getEleme ntsByTagName(A)返回已知的子节点中的所有超链接。3、通过临近节点获取:(1) neighbourNode.previousSibling:获取已知节点(neighbourNode)的前一 个节点,这个属性和前面的firstChild、lastChild 一样都似乎可以递归使用的。(2) neighbourNode.nextSibling:获取已知节点(neighbourNode)的下一个节 点,同样支持递归。4、通过子节点获取:(1) childNode.parentNode:获取已知节点的父节点。上面提到的方法,只是一些基本的方法,如果使用了 Prototype等JavaScript库,可能还 获得其他不同的方法,例如通过节点的class获取等等。不过,如果能够灵活运用上面的各种方 法,相信应该可以应付大部分的程序

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号