js-dom元素操作
来源:互联网 发布:网络拍卖平台 编辑:程序博客网 时间:2024/05/18 02:30
JS获取节点方法
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:获取已知节点的父节点。
节点类型
DOM节点中,每个节点都拥有不同的类型。
W3C规范中常用的 DOM节点类型有以下几种:
- 等
获取节点类型的语法:
nodeObject.nodeType
其中,nodeObject 为DOM节点(节点对象)。该属性返回以数字表示的节点类型,例如,元素节点返回 1,属性节点返回 2 。
节点名称
节点名称就是DOM节点的名字,不同类型的节点对应不同的节点名称。
获取节点名称的语法:
nodeObject.nodeName
其中,nodeObject 为DOM节点(节点对象)。
节点值
对于文本节点,节点值为文本内容;对于属性节点,节点值为属性的值。
节点值对于文档节点和元素节点是不可用的。
获取节点值的语法:
nodeObject.nodeValue
其中,nodeObject 为DOM节点(节点对象)。
1、判断子节点个数
var len = 0;len = Obj.children.length;//不包括text子节点//或者 len = Obj.childNodes.length;则包含text等空格节点
2、判断是否含有子节点
obj.hasChildNodes();//返回true则含有,false则表示无
IE8.0及其以下版本的浏览器会忽略节点间的空白节点(空格、回车和Tab键),遵循W3C规范的浏览器(Chrome、FireFox、Safari等)则会把这些空白作为文本节点处理。
文本节点和属性节点不可能再包含子节点,所以对于这两类节点使用 ChildNodes() 方法返回值永远为false。
如果 hasChildNodes() 返回值为false,则 firstChild、lastChild 的返回值为 null(节点不存在),children、childNodes 返回值为空集合(数组长度为 0)。
3、删除子节点
obj.removeChild(obj.firstChild);//删除第一个子节点obj.removeChild(obj.lastChild);//删除最后一个子节点obj.removeChild(Obj.children[1])//删除第2个子节点
可以使用Obj.childNodes[i].className或者其他方式对子节点进行操作
js中设置元素class的三种方法
el.setAttribute('class','abc'); el.setAttribute('className', 'abc') el.className = 'abc';
其他
属性:
nextSibling //返回当前节点的下一个兄弟节点(只读) previousSibling //返回此节点的前一个兄弟节点(只读) parentNode //返回父节点(只读) childNodes //存储节点的子节点列表(只读) nodeValue //返回节点的文本(可读写) Text //返回此节点及其后代的文本内容(可读写) nodeName //返回节点的名字(只读) Attributes //存储节点的属性列表(只读)dataType //返回此节点的数据类型Definition //以DTD或XML模式给出的节点的定义(只读)Doctype //指定文档类型节点(只读)documentElement //返回文档的根元素(可读写)firstChild //返回当前节点的第一个子节点(只读)Implementation //返回XMLDOMImplementation对象lastChild //返回当前节点最后一个子节点(只读)nodeType//返回节点的类型(只读)nodeTypedValue //存储节点值(可读写)ownerDocument //返回包含此节点的根文档(只读)Parsed//返回此节点及其子节点是否已经被解析(只读)Prefix //返回名称空间前缀(只读)preserveWhiteSpace //指定是否保留空白(可读写)url //返回最近载入的XML文档的URL(只读)Xml //返回节点及其后代的XML表示(只读)
方法:
getElementsByTagName //返回指定名字的元素集合 appendChild //为当前节点添加一个新的子节点,放在最后的子节点后createElement //创建一个元素节点 createTextNode //创建包括给定数据的文本节点 removeChild //从子结点列表中删除指定的子节点 hasChildNodes //返回当前节点是否有子节点 cloneNode //返回当前节点的拷贝createAttribute //创建新的属性createCDATASection //创建包括给定数据的CDATA段createComment //创建一个注释节点createDocumentFragment //创建DocumentFragment对象createEntityReference //创建EntityReference对象createNode //创建给定类型,名字和命名空间的节点createPorcessingInstruction //创建操作指令节点insertBefore //在指定节点前插入子节点Load //导入指定位置的XML文档loadXML //导入指定字符串的XML文档replaceChild //从子节点列表中替换指定的子节点Save //把XML文件存到指定节点selectNodes //对节点进行指定的匹配,并返回匹配节点列表selectSingleNode //对节点进行指定的匹配,并返回第一个匹配节点transformNode //使用指定的样式表对节点及其后代进行转换transformNodeToObject //使用指定的样式表将节点及其后代转换为对象
参考:
JavaScript获取节点类型、节点名称和节点值
JS获取节点方法
js对子节点操作
js中设置元素class的三种方法小结
- js-dom元素操作
- JS操作DOM元素
- 原生js操作DOM元素
- JS DOM之元素操作
- JS操作DOM元素属性和方法
- JS操作DOM元素属性和方法
- JS操作DOM元素属性和方法
- JS操作DOM元素属性和方法
- JS操作DOM元素属性和方法
- JS操作DOM元素属性和方法
- JS操作DOM元素属性和方法
- js实验4.(3)DOM元素操作
- JS操作DOM元素属性和方法
- js操作dom元素的例子
- JS的DOM操作元素示例1--删除添加元素
- js操作dom元素的属性和方法
- JS操作DOM元素的属性和方法
- 原生JS总结1------操作遍历的dom元素
- vsftpd客户端提示:Entering passive Mode的三种解决办法
- java.lang.OutOfMemoryError: PermGen space及其解决方法
- Eclipse快捷键大全(转载)
- 心塞的Xutil的用法
- [Android四大组件] Service详解,你不知道的都在这里
- js-dom元素操作
- C++头文件之:#ifndef #define #endif ,#ifdef __cplusplus extern "C" { #endif,__declspec(dllimport)
- OJ 1011 复数类
- 目标跟踪:KCF代码分析(matlab版本)
- CURL基础使用
- iOS路由跳转(三)之JKRouter基础教程2
- Flink的standalone 模式简单部署
- HDU
- js比较运算符