**JAVASCRIPT** DOM对象二——节点与遍历
来源:互联网 发布:淘宝偷换宝贝怎么举报 编辑:程序博客网 时间:2024/06/06 02:49
>父子节点
>>childNode
>>firstChild lastChild使用语法:elementNode.childNodes
注意事项:空白节点会被浏览器但顾总文本节点
使用语法:node.firstChild node.lastChild
>>parentNode
使用语法:elementNode.parentNode
<span style="font-size:14px;"><body> <ul id="father"> <li>大娃</li> </ul> <script type="text/javascript"> var li_num = 0; var childNodes = document.getElementById("father").childNodes; for(var i = 0; i < childNodes.length; i++){ document.write("节点名:" + childNodes[i].nodeName + " "); document.write("节点类型:" + childNodes[i].nodeType + " "); if(childNodes[i].nodeType == 1){ document.write("我是" + childNodes[i].innerHTML + "<br>"); li_num++; } else{ document.write("<br>"); console.log("这是一个空节点,不用理他"); } } document.write("子节点数目:" + childNodes.length + "<br>"); document.write("li 子节点数目:" + li_num + "<br>"); document.write("文本子节点数目:" + (childNodes.length - li_num)); </script></body></span>//补充节点的属性还有title!
>兄弟节点
previousSibling nextSibling
使用语法:
nodeobject.nextSibling / previousSibling
<span style="font-size:14px;"><body> <ul id="father"> <li title="force_max">大娃</li> <li id="second_children">二娃</li> <li title="fire">三娃</li> </ul> <script type="text/javascript"> function getprenode(node){ var prenode = node.previousSibling; while(prenode && prenode.nodeType != 1){ prenode = prenode.previousSibling; } return prenode; } function getnextnode(node){ var nextnode = node.nextSibling; while(nextnode && nextnode.nodeType != 1){ nextnode =nextnode.nextSibling; } return nextnode; } var second_children = document.getElementById("second_children"); var first_children = getprenode(second_children); var third_children = getnextnode(second_children); alert(first_children.innerHTML+first_children.title); alert(third_children.innerHTML+third_children.title); </script></body></span>//虽然觉得这是史上最无聊的程序,但还是含泪贴上了
>创建节点方法
createElement('tagName'):创建节点
crreateTextNode("text"):穿件文本节点
<span style="font-size:14px;"> var newinp = document.createElement("input"); alert(newinp); var newtext = document.createTextNode("text"); alert(newtext);</span>
>添加删除节点
nodeobject.appendChild(newnode):父节点末尾添加
nodeobject.removeChild(node):删除节点
<span style="font-size:14px;"><body><ul id="father"> <li>大娃</li></ul><input type="button" id="createbtn" value="祭出紫金葫芦"><script type="text/javascript"> function createnode(){ var btn = document.createElement("input"); btn.setAttribute("type", "button"); btn.setAttribute("name", "紫金葫芦"); btn.setAttribute("value", "吸进去"); btn.setAttribute("onclick", "removenode()"); document.body.appendChild(btn); } function removenode(){ var fnode = document.getElementById("father"); var nodes = fnode.childNodes; for(var i = 0; i < nodes.length; i++){ if(nodes[i] && nodes[i].nodeType == 1){ var rm = fnode.removeChild(nodes[i]); rm = null; break; } } } var createbtn = document.getElementById("createbtn"); createbtn.onclick = createnode; </script></body></span>//有很多需要注意的地方,等吃饭回来补充
appendChild()方法的主体必须使父节点,而且只能添加到节点对类的末尾
>插入节点
fnode.insertBefore(newnode,node):可以指定插如节点的位置(在node之前)返回值是插入的节点
<span style="font-size:14px;"><body> <ul id="father"> <li>二娃</li> </ul> <input type="button" id="add-btn" value="add"> <script type="text/javascript"> function addnode(){ var fnode = document.getElementById("father"); var newnode = document.createElement("li"); newnode.innerHTML = "大娃"; fnode.insertBefore(newnode, fnode.childNodes[0]); } var add = document.getElementById("add-btn"); add.onclick = addnode; </script></body></span>
fonde.replaceChild(newnode, oldnode)//返回值是被替换的节点
<span style="font-size:14px;"><body><ul id="father"> <li id="first">大娃</li> <li>二娃</li></ul><input type="button" id="replace-btn" value="replace"><script type="text/javascript"> function replacenode(){ var oldnode = document.getElementById("first"); var newnode = document.createElement("li"); newnode.innerHTML = "金刚葫芦娃"; oldnode.parentNode.replaceChild(newnode, oldnode); } var replace = document.getElementById("replace-btn"); replace.onclick = replacenode;</script></body></span>
0 0
- **JAVASCRIPT** DOM对象二——节点与遍历
- DOM(二)——节点
- javascript递归遍历所有DOM文档节点
- javascript 遍历dom 节点统计类型
- DOM中使用节点对象遍历文档
- DOM对象—节点的详解(一)
- JavaScript DOM学习笔记1——DOM节点层次
- JavaScript DOM总结(二、节点操作)
- [JavaScript]遍历DOM对象所有属性
- jQuery对象与DOM节点转换
- jquery(遍历-dom节点)
- JavaScript对象——遍历
- 跟我学JavaScript--HTML DOM--节点,DOM对象方法,DOM对象属性
- DOM(二)DOM节点关系与操作
- javascript DOM 编程方法——创建节点
- javascript DOM 编程方法——创建文本节点
- JavaScript DOM学习笔记4——访问指定节点
- JavaScript进阶学习——DOM对象
- Oracle数据库常用操作
- Node.js+Socket.IO实现的WebSocket群聊天室源码
- UVa 401 - Palindromes
- Win10之UWP的数据存储
- UVa 272 - TEX Quotes
- **JAVASCRIPT** DOM对象二——节点与遍历
- Spring transaction事务之roll back回滚
- VS2013 项目项目安装和部署
- POJ1308/HDU1325/NYOJ129-Is It A Tree?,并查集!
- Android中使用Handler造成内存泄露的原因和解决方法
- 为何rem在chrome浏览器上计算出错
- UVA 113 - Power of Cryptography
- 设置的JMeter 2.6在Mac
- GitHub创建Maven项目。