开一个网站需要什么,吉安哪里做网站,网页设计实验,开发一个手机系统有多难遍历节点树 基于元素节点树的遍历 parcntElcrmcnt - 返回当前元素的父元秦节点 (IE不兼容)children -只返回当前元素的元素子节点node.childFlement(ount nodechildren.length当前元素节点的子元素(IE不兼容)firstElementChild-返回的是第一个元素节点(IE不兼容)l… 遍历节点树 基于元素节点树的遍历 parcntElcrmcnt - 返回当前元素的父元秦节点 (IE不兼容)children -只返回当前元素的元素子节点node.childFlement(ount nodechildren.length当前元素节点的子元素(IE不兼容)firstElementChild-返回的是第一个元素节点(IE不兼容)laslElemenlChild - 返回的是最后一个元素节点(IE不兼容)nextElementSibling / previousElementSibling -返回后一个/前一个兄弟元素节点(IE不兼容)
例parcntElcrmcnt - 返回当前元素的父元秦节点 方法一返回第1层祖先元素节点
divstrongspani/i /span/strong/div
var i document.getElementsByTagName(i)[0];
console.log(i.parentElement);//span.../span 方法二返回第n层祖先元素节点 divstrongspani/i /span/strong/divscriptvar i document.getElementsByTagName(i)[0];function retParent(elem, n) {while (elem n) {elem elem.parentElement;n--}return elem}retParent(i, 1)/script 例children -只返回当前元素的元素子节点 divp/pp/pp/p/divscriptvar div document.getElementsByTagName(div)[0];console.log(div.children); //HTMLCollection(3) [p, p, p]/script
例返回第n个兄弟元素节点
nextElementSibling / previousElementSibling -返回后一个/前一个兄弟元素节点 strong/strongspan/spani/iscriptvar span document.getElementsByTagName(span)[0];function retSibling(e, n) {while (e n) {if (n 0) {e e.nextElementSiblingn--} else {e e.previousElementSiblingn}}console.log(e, e);}retSibling(span, -1) //strong/strong/script 节点的四个属性
nodeName---------元素的标签名以大写形式表示,只读nodeValue----------Text文本节点或Comment注释节点的文本内容可读写nodeType-----------该节点的类型只读attributes------------Element 节点的属性集合年的节点节点的一个方法---- hasChildNodes()是否有子节点,返回true/false
nodeType返回节点的类型--数字 例 divp/p/divscriptvar div document.getElementsByTagName(div)[0];console.log(div.children[0].nodeType); //1/script 例 获取div元素下的所有元素节点
方法一当nodeType1是为元素节点解决浏览器不兼容问题 divp/p/divvar div document.getElementsByTagName(div)[0];function retElementChild(node) {var arr [],child node.childNodes,//childNodes子节点们len child.length;for (var i 0; i len; i) {if (child[i].nodeType 1) {arr.push(child[i]);}}return arr;}retElementChild(div) //[p] 方法二children -只返回当前元素的元素子节点 divp/p/divscriptvar div document.getElementsByTagName(div)[0];console.log(div.children);//HTMLCollection [p]/script 例attributes------------Element 节点的属性集合年的节点
div classdemo idonly/divscriptvar div document.getElementsByTagName(div)[0];console.log(div.attributes); //{0: class, 1: id, class: class, id: id, length: 2}/script DOM结构树继承关系
document-- HTMLDocument.prototype-- Document.prototype dom操作 增 document.createElement()---创建元素节点 document.createTextNode()---创建文本节点 document.createComment()----创建注释节点 dncumenl.crealeDocumeniFmagme() var p document.createElement(p); 插 appendChild0;---添加到父节点的最后一个子节点 inserlBelare(a, b)---a要插入的新节点-b参考节点新节点将被插入到参考节点之前的位置
appendChild()方法
将一个新的子节点添加到指定父节点的子节点列表的方法。该方法接收一个参数即要添加的新子节点然后将其添加为父节点的最后一个子节点
类似于push方法向元素中添加新的子元素 div/divscriptvar div document.getElementsByTagName(div)[0];var text document.createTextNode(Hello World);div.appendChild(text); //Hello World/script
inserlBelare(a, b)方法
在指定的参考节点之前插入新节点。使用 insertBefore() 方法时需要指定两个参数要插入的新节点和参考节点。新节点将被插入到参考节点之前的位置 divspan/span/divscriptvar div document.getElementsByTagName(div)[0];var span document.getElementsByTagName(span)[0];var strong document.createElement(strong);div.insertBefore(strong, span); // divstrong/strongspan/span/div/script 删 removeChild()--在父节点中通过剪切删除可以拿到删除后的元素
remove()--直接删除 divspan/span/divscriptvar div document.getElementsByTagName(div)[0];var span document.getElementsByTagName(span)[0];var str div.removeChild(span) //通过剪切删除可以拿到删除后的元素console.log(str);//span/span/script divspan/span/divscriptvar div document.getElementsByTagName(div)[0];var span document.getElementsByTagName(span)[0];span.remove()/script 替换
replaceChild(new, origin)---new新的origin旧的 divspan/span/divscriptvar div document.getElementsByTagName(div)[0];var span document.getElementsByTagName(span)[0];var p document.createElement(p);//创建p元素节点div.replaceChild(p, span) // 把span元素替换p元素/script Element属性方法 例 div/divscriptvar div document.getElementsByTagName(div)[0];div.innerHTML h2hello world/h2; //hello worlddiv.innerText h2hello world/h2; //h2hello world/h2/script
例
getAttribute 方法用于获取元素的属性值。通过调用 getAttribute 方法并传入要获取的属性名作为参数可以获得该元素指定属性的值 div iddoem/divscriptvar div document.getElementsByTagName(div)[0];console.log(div.getAttribute(id)); //doem/script
setAttribute 方法用于给元素设置或添加一个属性。如果指定的属性已经存在则该方法将更新该属性的值 div/divscriptvar div document.getElementsByTagName(div)[0];div.setAttribute(class, newClass)console.log(div); //div classnewclass/div/script