js node 操作

  1. Node往往被翻译为节点,在一个对象(可以简单的理解为是 HTML页面中),一个属性name= "aaa" 可以是一个节点, 一个< div id= "aaa" >……< /div> 也可以是一个节点,在< body>……< /body>中的,也是一个大大的节点。下面是一些有关Node的属性和方法,并没 有包含部分不兼容IE和FF内容的讲解。  
  2.   
  3. Node 的属性介绍:  
  4.   
  5. nodeType:显示节点的类型  
  6. nodeName: 显示节点的名称  
  7. nodeValue:显示节点的值  
  8. attributes: 获取一个属性节点  
  9. firstChild:表示某一节点的第一个节点  
  10. lastChild: 表示某一节点的最后一个子节点  
  11. childNodes:表示所在节点的所有子节点  
  12. parentNode: 表示所在节点的父节点  
  13. nextSibling:紧挨着当前节点的下一个节点  
  14. previousSibling: 紧挨着当前节点的上一个节点  
  15. ownerDocument:(不知)  
  16.   
  17. Node 有各种各样的节点,我们先花一些时间认识他们,同时一并了解nodeType,nodeName和nodeValue属性:  
  18. 名 称:元素节点  
  19. nodeType:ELEMENT_NODE  
  20. nodeType 值:1  
  21. nodeName:元素标记名  
  22. nodeValue:null   
  23.   
  24. <body>  
  25. <div id = "t"  ><span></span></div>  
  26. </body>  
  27. <script>  
  28. var  d = document.getElementById( "t" );  
  29. document.write(d.nodeType);  
  30. document.write(d.nodeName);  
  31. document.write(d.nodeValue);  
  32. //显示 1 DIV null   
  33. </script>  
  34. 名 称:属性节点  
  35. nodeType:ATTRIBUTE_NODE  
  36. nodeType 值:2  
  37. nodeName:属性名  
  38. nodeValue: 属性值  
  39.   
  40. <body>  
  41. <div id = "t"  name= "aaa" ><span></span></div>  
  42. </body>  
  43. <script>  
  44. var  d = document.getElementById( "t" ).getAttributeNode( "name" );  
  45. document.write(d.nodeType);  
  46. document.write(d.nodeName);  
  47. document.write(d.nodeValue);  
  48. //显示 2 name aaa   
  49. </script>  
  50. 名 称:文本节点  
  51. nodeType:TEXT_NODE  
  52. nodeType 值:3  
  53. nodeName:#text  
  54. nodeValue: 文本内容  
  55.   
  56. <body>  
  57. <div id = "t" >bbb</div>  
  58. </body>  
  59. <script>  
  60. var  d = document.getElementById( "t" ).firstChild;  
  61. document.write(d.nodeType);  
  62. document.write(d.nodeName);  
  63. document.write(d.nodeValue);  
  64. //显示 3 #text bbb    
  65. </script>  
  66. 名 称:CDATA文本节点(XML中传递文本的格式)  
  67. nodeType:CDATA_SECTION_NODE  
  68. nodeType 值:4  
  69. nodeName:#cdata-section  
  70. nodeValue:CDATA 文本内容  
  71.   
  72. (作者省略8个属性,需技术补充)  
  73.   
  74. attributes 属性,直接获取一个属性节点,注意这里要使用[],保持IE和FF的兼容性。  
  75.   
  76. <body name="ddd" >  
  77. <div id = "t"  name =  "aaa" ><span>aaa</span><span>bbb</span><span>ccc</span></div>  
  78. </body>  
  79. <script>  
  80. var  d = document.getElementById( "t" ).attributes[ "name" ];  
  81. document.write(d.name);  
  82. document.write(d.value);  
  83. //显示 name aaa   
  84. </script>  
  85. firstChild 和lastChild属性,表示某一节点的第一个和最后一个子节点:  
  86.   
  87. <body>  
  88. <div id = "t" ><span>aaa</span><span>bbb</span><span>ccc</span></div>  
  89. </body>  
  90. <script>  
  91. var  d = document.getElementById( "t" );  
  92. document.write(d.firstChild.innerHTML);  
  93. document.write(d.lastChild.innerHTML);  
  94. //显示 aaa ccc   
  95. </script>  
  96. childNodes 和parentNode属性,表示所在节点的所有子节点和所在节点的父节点,这里的childNodes注意是一个数组:  
  97.   
  98. <body name="ddd" >  
  99. <div id = "t" ><span>aaa</span><span>bbb</span><span>ccc</span></div>  
  100. </body>  
  101. <script>  
  102. var  d = document.getElementById( "t" );  
  103. document.write(d.childNodes[1].innerHTML);  
  104. document.write(d.parentNode.getAttribute("name" ));  
  105. //显示 bbb ddd   
  106. </script>  
  107. nextSibling 和previousSibling属性,分别表示在parentNode的childNodes[]数组中,紧挨着当前节点的上一个和下一个节点:  
  108.   
  109. <body name="ddd" >  
  110. <div id = "t" ><span>aaa</span><span>bbb</span><span>ccc</span></div>  
  111. </body>  
  112. <script>  
  113. var  d = document.getElementById( "t" ).childNodes[1];  
  114. document.write(d.nextSibling.innerHTML);  
  115. document.write(d.previousSibling.innerHTML);  
  116. //显示 ccc aaa   
  117. </script>  
  118. ownerDocument 属性(不知如何使用)  
  119.   
  120. Node的方法介绍:  
  121.   
  122. hasChildNodes(): 判定一个节点是否有子节点  
  123. removeChild():去除一个节点  
  124. appendChild(): 添加一个节点  
  125. replaceChild():替换一个节点  
  126. insertBefore(): 指定节点位置插入一个节点  
  127. cloneNode():复制一个节点  
  128. normalize(): (不知)  
  129.   
  130. hasChildNodes()方法:判定 一个节点是否有子节点,有返回true ,没有返回 false   
  131.   
  132. <body name="ddd" >  
  133. <div id = "t" ><span>aaa</span><span>bbb</span><span>ccc</span></div>  
  134. <div id = "m" ></div>  
  135. </body>  
  136. <script>  
  137. alert(document.getElementById("t" ).hasChildNodes());  
  138. alert(document.getElementById("m" ).hasChildNodes());  
  139. // 第一个true,第二个false   
  140. </script>  
  141. removeChild() 方法:去除一个节点  
  142.   
  143. <body name="ddd" >  
  144. <div id = "t" ><span>aaa</span><span>bbb</span><span>ccc</span></div>  
  145. </body>  
  146. <script>  
  147. var  d = document.getElementById( "t" ).firstChild;  
  148. document.getElementById("t" ).removeChild(d);  
  149. // <span>aaa</span>被去除   
  150. </script>  
  151. appendChild() 方法:添加一个节点,如果文档树中已经存在该节点,则将它删除,然后在新位置插入。  
  152.   
  153. <body name="ddd" >  
  154. <div id = "t" ><span>aaa</span><span>bbb</span><span>ccc</span></div>  
  155. </body>  
  156. <script>  
  157. var  d = document.getElementById( "t" ).firstChild;  
  158. document.getElementById("t" ).appendChild(d);  
  159. // <span>aaa</span>成了最后一个节点   
  160. </script>  
  161. replaceChild() 方法:从文档树中删除(并返回)指定的子节点,用另一个节点来替换它。  
  162.   
  163. <body name="ddd" >  
  164. <div id = "t" ><span>aaa</span><span>bbb</span><span>ccc</span></div>  
  165. </body>  
  166. <script>  
  167. var  newd = document.createElement( "span" );  
  168. newd.innerHTML = "eee" ;  
  169. var  oldd = document.getElementById( "t" ).lastChild;  
  170. document.getElementById("t" ).replaceChild(newd,oldd);  
  171. // 最后一项成了 eee   
  172. </script>  
  173. insertBefore() 方法:在指定节点的前面插入一个节点,如果已经存在,则删除原来的,然后在新位置插入  
  174.   
  175. <body name="ddd" >  
  176. <div id = "t" ><span>aaa</span><span>bbb</span><span>ccc</span></div>  
  177. </body>  
  178. <script>  
  179. var  newd = document.createElement( "span" );  
  180. newd.innerHTML = "eee" ;  
  181. var  where = document.getElementById( "t" ).lastChild;  
  182. document.getElementById("t" ).insertBefore(newd,where);  
  183. // 在最后一项的前面多了一项 eee   
  184. </script>  
  185. cloneNode() 方法:复制一个节点,该方法有一个参数,true 表示同时复制所有的子节点, false 表示近复制当前节点  
  186.   
  187. <body name="ddd" >  
  188. <div id = "t" ><span>aaa</span><span>bbb</span><span>ccc</span></div><div id =  "m" ></div>  
  189. </body>  
  190. <script>  
  191. var  what = document.getElementById( "t" ).cloneNode( false ).innerHTML;  
  192. document.getElementById("m" ).innerHTML = what;  
  193. // 增加了一个aaabbbccc   
  194. </script> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值