javascript 获?取?H?T?M?L? ?D?O?M?父?,?子?,?临?近?节?点

在Web应用程序特别是Web2.0程序开发中。常常要获取页面中某个元素,然后更新该元素的样式、内容等。怎样获取要更新的元素,是首先要解决的问题。令人欣慰的是,使用JavaScript获取节点的方法有非常多种,这里简单做一下总结(下面方法在IE7和Firefox2.0.0.11測试通过):

1. 通过顶层document节点获取:

(1) document.getElementById(elementId):该方法通过节点的ID。能够准确获得须要的元素。是比較简单快捷的方法。

假设页面上含有多个同样id的节点。那么仅仅返回第一个节点。

现在。已经出现了如prototype、Mootools等多个JavaScript库,它们提供了更简便的方法:$(id),參数仍然是节点的id。

这种方法能够看作是

document.getElementById()的第二种写法。只是$()的功能更为强大,详细使用方法能够參考它们各自的API文档。

(2)document.getElementsByName(elementName):该方法是通过节点的name获取节点,从名字能够看出。这种方法返回的不是一个节点元素,而是具有相同名称的节点数组。

然后,我们能够通过要获取节点的某个属性来循环推断是否为须要的节点。

比如:在HTML中checkbox和radio都是通过同样的name属性值,来标识一个组内的元素。假设我们如今要获取被选中的元素。首先获取改组元素。然后循环推断是节点的checked属性值是否为true就可以。

(3)document.getElementsByTagName(tagName):该方法是通过节点的Tag获取节点,相同该方法也是返回一个数组,比如:

document.getElementsByTagName(‘A‘)将会返回页面上全部超链接节点。在获取节点之前,一般都是知道节点的类型的,所以使用该方法比較简单。可是缺点也是显而易见,那就是返回的数组可能十分庞大,这样就会浪费非常多时间。那么,这种方法是不是就没实用处了呢?当然不是,这种方法和上面的两个不同,它不是document节点的专有方法,还能够应用其它的节点,以下将会提到。

2、通过父节点获取:

(1)parentObj.firstChild:假设节点为已知节点(parentObj)的第一个子节点就能够使用这种方法。

这个属性是能够递归使用的,也就是支持

parentObj.firstChild.firstChild.firstChild...的形式。如此就能够获得更深层次的节点。

(2)parentObj.lastChild:非常显然,这个属性是获取已知节点(parentObj)的最后一个子节点。与firstChild一样,它也能够递归使用。

在使用中。假设我们把二者结合起来。那么将会达到更加令人兴奋的效果,即:parentObj.firstChild.lastChild.lastChild...

(3)parentObj.childNodes:获取已知节点的子节点数组,然后能够通过循环或者索引找到须要的节点。

注意:经測试发现,在IE7上获取的是直接子节点的数组。而在Firefox2.0.0.11上获取的是全部子节点即包含子节点的子节点。

(4)parentObj.children:获取已知节点的直接子节点数组。

注意:经測试,在IE7上,和childNodes效果一样。而Firefox2.0.0.11不支持。

这也是为什么我要使用和其它方法不相同式的原因。因此不建议使用。

(5)parentObj.getElementsByTagName(tagName):用法不再赘述,它返回已知节点的全部子节点中类型为指定值的子节点数组。

比如:

parentObj.getElementsByTagName(‘A‘)返回已知的子节点中的全部超链接。

3、通过临近节点获取:

(1)neighbourNode.previousSibling:获取已知节点(neighbourNode)的前一个节点。这个属性和前面的firstChild、lastChild一样都似乎能够递归使用的。

(2)neighbourNode.nextSibling:获取已知节点(neighbourNode)的下一个节点,相同支持递归。

4、通过子节点获取:

(1)childNode.parentNode:获取已知节点的父节点。

上面提到的方法。仅仅是一些主要的方法,假设使用了Prototype等JavaScript库,可能还获得其它不同的方法。比如通过节点的class获取等等。只是,假设可以灵活运用上面的各种方法。相信应该可以应付大部分的程序。

參考:http://blog.csdn.net/bradwoo8621/article/details/1747502

时间: 2024-10-01 07:31:37

javascript 获?取?H?T?M?L? ?D?O?M?父?,?子?,?临?近?节?点的相关文章

S?Q?L?获?取?当?前?时?间?(?日?期?)

--获取当前日期(如:yyyymmdd) select CONVERT (nvarchar(12),GETDATE(),112) --获取当前日期(如:yyyymmdd hh:MM:ss) select GETDATE() --获取当前日期(如:yyyy-mm-dd) Select Datename(year,GetDate())+'-'+Datename(month,GetDate())+'-'+Datename(day,GetDate()) --获取当前日期(如:yyyy/mm/dd) se

H?t?m?l?5? ?学?习?:?H?T?M?L?5?新?增?结?构?标?签

引言 在本节中,笔者将向大家讲述三部分内容,分别介绍HTML5时代的召唤,跟HTML4的区别,以及HTML5中带来的新的结构标签. HTML5时代的召唤 HTML4与HTML5的区别 HTML5新结构标签 HTML5时代的召唤 上一代的HTML的标准: HTML 4.01 和 XHTML 1.0 距离今天已经发布了10多年了,而Web端的应用也已经翻天覆地的变换.而且Web前端没有一个统一的通用的互联网标准,各个浏览器间拥有太多的不兼容,在维护这些浏览器兼容性浪费了太多的时间.再有就是之前的多媒

mppe +H -M +S -L -D -C中个字母意思

mppe +H -M +S -L -D -C what each character mean. 根据Microsoft Point-To-Point Encryption (MPPE) Protocol的rfc3078文件中第2节Configuration Option Format: H:使用stateless模式(this indicates that the sender wishes to negotiate the use of stateless mode) M:使用56bit密钥

简单的方式实现javascript 小数取整

JS: function truncateNumber(n){ return n|0; } 测试: console.log(truncateNumber(12.345)); 浏览器打印出12 简单的方式实现javascript 小数取整

linux下使用math.h头文件-l与-L参数

遇到一个问题就是,c语言用到sqrt时,明明已包含math.h文件,却仍提示未定义,所以上网招答案的: gcc -lm 以下转自http://bbs.csdn.net/topics/330105678 ·-l参数和-L参数 -l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了 好了现在我们知道怎么得到库名,当我们自已要用到一个第三方提供

解?决?H?T?M?或?H?T?M?L?的?图?标

HTM和HTML的文件图标不能正常显示,显示为无关联应用程序的白板图标,搞了很久都没能解决,最后综合了几种方法才“搞定”她!出现这种情况的原因可能是安装了某些软件(比如OFFICE.FIREFOX)后,被擅自修改了关联图标的原因造成的. 解决方法:1.打开注册表:运行—> 输入regedit—> 打开HKEY_CLASSES_ROOT—>2.找到.htm和.html—> 双击右边的“默认”,确认其数值数据为 htmlfile3.找到 htmlfile\ShellEx\IconHan

Linux df -h 与 fdisk -l 命令区别

fdisk工具是分区工具:df是用来查看文件系统(分区)的使用情况的! 当用来查看分区信息时,较为相似:   fdisk侧重于显示分区表的信息:   df侧重于显示当前系统中所有文件系统的信息: 常用用法:fdisk -l  查看当前的磁盘分区信息(主要是分区表信息)fdisk /dev/sda   对磁盘/dev/sda进行分区操作 df -h  查看当前文件系统信息,包括容量大小.使用情况.挂载点等

kettle转换JavaScript获取命令行参数

日常开发中由于很多参数是变化的,需要在部署时才能确定.而写在配置文件里又显得很笨重,因而可以运行时实时指定.那么kettle是怎么获取命令行中的参数的呢? kettle可以通过转换里的JavaScript获取变量 _step_.getTransMeta().getArguments()[0];

2016/4/1 jquery 与javascript关系 ①取元素 ②操作内容 ③操作属性 ④操作 样式

jQuery的min版本和原版功能是一样的,min版主要应用于已经开发成的网页中,而非min版 的文件比较大,里面有整洁的代码书写规范和注释,主要应用于脚本开发过程当中. JQuery是继prototype之后又一个优秀的Javascript库.它是轻量级的js库 ,它兼容CSS3 ,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后 续版本将不再支持IE6/7/8浏览器.jQuery能够使用户的html页面保持代码和h