JavaScript文档对象模型DOM
Posted musong-out
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript文档对象模型DOM相关的知识,希望对你有一定的参考价值。
节点关系属性:(带element的属性ie低版本不支持)
- childNodes—所有子节点(元素,注释,文本);
- nodeType——属性代表节点类型;
- children——获取元素子节点
- firstChild——第一个子节点(元素,注释,文本)
- *firstElementChild ——第一个元素子节点
- lastChild ——最后一个子节点 (元素,注释,文本)
- *lastElementChild ——最后一个元素子节点
- parentNode——父元素
- offsetParent ——定位父级
- previousSibling ——上一个兄弟节点
- *previousElementSibling ——上一个元素兄弟节点
- nextSibling ——下一个兄弟节点
- *nextElementSibling ——下一个元素兄弟节点
节点操作(增删改):
- 创建节点——document.createElement(‘div‘)
> document.createElement(‘div‘) 创建元素节点 > document.createTextNode(‘文本‘) 创建文本节点 ``` var newLi = document.createElement(‘li‘); newLi.innerhtml = ‘444‘; ```
- 在元素的末尾添加项——parent.appendChild(child)
``` var ul = document.getElementsByTagName(‘ul‘)[0]; ul.appendChild(newLi); ```
- 在指定元素之前插入节点——oldNode.parentNode.insertBefore(newNode,oldNode);
``` var li2 = document.getElementById(‘li2‘); var newLi1 = document.createElement(‘li‘); newLi1.innerHTML = ‘1-21-2‘; li2.parentNode.insertBefore(newLi1,li2); ```
- 替换元素——replaceChild(newNode,oldNode)
* 如果newNode是已经存在的标签,就是改变标签的物理位置 ``` var newLi2 = document.createElement(‘li‘); newLi2.innerHTML = ‘三三三‘; var li3 = document.getElementById(‘li3‘); //ul.replaceChild(newLi2,li3); li3.parentNode.replaceChild(newLi2,li3); ```
- 删除节点——removeChild(delNode)
``` var li5 = document.getElementById(‘li5‘); //ul.removeChild(li5); li5.parentNode.removeChild(li5); // li5.remove(); ie不支持 ```
- 复制节点——cloneNode()
> cloneNode() 克隆节点,不传参,只复制标签本身,不包括内容 > cloneNode(true) 深度克隆,复制标签及标签里面的所有内容
获取元素的方法:
- document.getElementById()
- document.getElementsByTagName() //[]
- document.getElementsByClassName() //[] ie低版本不支持
``` //封装兼容所有浏览器的通过类名获取元素的方法 function getByClass(ele,cls) //先获取ele中所有标签(不区分标签名) var elements = ele.getElementsByTagName(‘*‘); var ary = []; //遍历elements for(var i = 0; i < elements.length; i++) // eles[i].className ‘red aa ccc‘ //先把类名词列表分割成数组 var clsAry = elements[i].className.split(‘ ‘); //[‘red‘,‘aa‘,‘ccc‘] //遍历类名数组,如果存在cls相同的类名,就把这个元素放进ary for(var j = 0; j < clsAry.length ; j++) if(cls == clsAry[j]) ary.push(elements[i]); break; return ary; ```
- document.querySelector(‘#box .red‘); //获取一个元素 不兼容ie低版本
- document.querySelectorAll(‘#box .red‘);//获取一组元素 不兼容ie低版本
以上是关于JavaScript文档对象模型DOM的主要内容,如果未能解决你的问题,请参考以下文章