html为document搭建了一棵dom树,这棵树就是有一系列node节点所构成的。他为我们定义了文档的结构。
node类型:
node.element_node(1); //元素节点较常用
node.attribute_node(2); //属性节点较常用
node.text_node(3); //文本节点较常用
node.cdata_section_node(4);
node.entity_reference_node(5);
node.entity_node(6);
node.processing_instruction_node(7);
node.comment_node(8);
node.document_node(9); //文档节点较常用
node.document_type_node(10);
node.document_fragment_node(11);
node.notation_node(12);
相关函数:
1、取得节点:
document.getelementbyid('element');
document.getelementsbytagname('element'); 返回类数组对象
document.getelementsbyname('element'); 返回类数组对象
document.getelementsbyclassname('classname') 返回类数组对象,ie7及以下并不支持;
document.queryselectorall('class' | 'element') 返回类数组对象
2、遍历节点
查找子节点:element.childnodes 返回类数组对象
查找第一个子节点:element.firstchild
查找最后一个子节点:element.lastchild
查找父元素:element.parentnode
查找前一个兄弟元素: element.previoussibling
查找后一个兄弟元素: element.nextsibling
3、获取节点信息
获取元素或者属性节点的标签名称:elementnode.nodename
获取文本节点的内容: textnode.nodevalue;
获取并设置元素节点的内容(可能会包含html标签): elementnode.innerhtml
获取并设置元素节点的纯文本内容:element.innertext(ie) | element.textcontent(ff)
获取属性节点的值: attrnode.getattribute(attrname);
设置属性节点的值: attrnode.setattribute(attrname,attrvalue);
获取节点的类型: node.nodetype;
元素节点: 1;
属性节点: 2;
文本节点: 3;
文档节点: 9;
注释节点: 8;
4、操作节点
创建元素节点: document.createelement('element');
创建文本节点: document.createtextnode('text');
创建属性节点: document.createattribute('attribute');
删除节点: node.remove();
删除子节点: parentnode.removechild(childnode);
插入节点: parentnode.appendchild(childnode); //插入到父节点的尾部
parentnode.insertbefore(newnode,existingnode) //插入到已存在节点的前面;
克隆节点: node.clonenode([true]) //传入true为深度复制
替换节点: parentnode.replacechild(newnode,oldnode);
相关拓展:
1、由于ie低版本浏览器和其他浏览器在处理dom中存在不兼容,因此要做一些简单的封装处理。
//=================function getelementchildren(element) { var children = [], oldchildnodes = element.childnodes; for(var i=0, len=oldchildnodes.length; i
//=========================function getelementstyle(element,stylename) { if(typeof getcomputedstyle != 'undefined') { return getcomputedstyle(element,null)[stylename]; } else { return element.currentstyle[stylename]; }} //==========================function addclass(element,classname) { element.classname += classname;} //==========================function removeclass(element,removeclassname) { var classstr = element.classname; element.classname = classstr.replace(removeclassname,'').split(/\s+/).join(' ').replace(/^\s+/,'').replace(/\s+$/,'');}
以上所述就是本文的全部内容了,希望大家能够喜欢。
