免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
js

一、定義

DOM :文檔對象模型

DMO是針對HTML文檔的一個API(應(yīng)用程序編程接口),DOM描繪了一個層次化的節(jié)點樹,允許開發(fā)人員添加,刪除,修改頁面的某一部分。

節(jié)點分為幾種不同的類型 :

  • Node類型
  • Document類型
  • Element類型
  • Text類型——文本類型
  • Comment類型 —— 注釋類型

二、類型的具體說明

  • Node類型

       屬性:1、nodeType , 表示節(jié)點類型

                         規(guī)則:  1 -->Element類型    3 -->Text類型   8 -->Comment類型   9 -->Document類型

                 2、 childNodes ,表示子節(jié)點集合,可以使用slice方法將NodeList轉(zhuǎn)換為數(shù)組

                          var arr = Array.prototype.slice.call(nodes,0);

 demo:       

  1. <head>
  2. <meta charset="UTF-8">
  3. <title>Document</title>
  4. <script>
  5. window.onload = function(){
  6. console.log(document.body.childNodes); //獲取所有子節(jié)點,包括各種類型的節(jié)點,返回NodeList類數(shù)組對象
  7. //將類數(shù)組對象轉(zhuǎn)換為數(shù)組對象
  8. var tempArr = Array.prototype.slice.call(document.body.childNodes,0);
  9. console.log(tempArr);
  10. //Text類型
  11. var texts = tempArr.filter(function(item,index){
  12. return item.nodeType == 3;
  13. });
  14. console.log(texts);
  15. //Element類型
  16. var eles = tempArr.filter(function(item,index){
  17. return item.nodeType == 1;
  18. });
  19. console.log(eles);
  20. //Comment類型
  21. var com = tempArr.filter(function(item,index){
  22. return item.nodeType == 8;
  23. });
  24. console.log(com);
  25. //Document類型
  26. var docu = tempArr.filter(function(item,index){
  27. return item.nodeType == 9;
  28. });
  29. console.log(docu);
  30. }
  31. </script>
  32. </head>
  33. <body>
  34. hello
  35. <!-- 注釋 -->
  36. <div>
  37. <span>world</span>
  38. </div>
  39. 你好
  40. </body>

輸出結(jié)果:

                            

                   3、nodeName , 取決于節(jié)點類型,如果是元素類型,值為元素的標(biāo)簽名

                   4、nodeValue , 取決于節(jié)點類型,如果是元素類型,值為null

                   5、parentNode,指向文檔樹中的父節(jié)點

                   6、previousSibling,兄弟節(jié)點的前一個節(jié)點

                   7、nextSibling,兄弟節(jié)點的下一個節(jié)點

                   8、firstSibling,childsNode列表中的第一個節(jié)點

                   9、ownerDocument,指向表示整個文檔的文檔節(jié)點

                   10、hasChildNodes,包含一個或多個節(jié)點時,返回true

  1. <head>
  2. <meta charset="UTF-8">
  3. <title>Node屬性</title>
  4. <script>
  5. window.onload = function(){
  6. console.log(document.body.childNodes); //獲取所有節(jié)點
  7. var childs = document.body.childNodes;
  8. console.log(childs.length);
  9. console.log(childs[3].nodeName); //獲取類數(shù)組對象中第三個節(jié)點的nodeName
  10. // 或者console.log(childs.item(0));
  11. console.log(childs[1].nodeValue); //獲取第一個節(jié)點的nodeValue
  12. console.log(childs[0].parentNode); //指向文檔樹中的父節(jié)點
  13. //兄弟節(jié)點
  14. console.log(childs[0].nextSibling); //下一個兄弟
  15. console.log(childs[4].previousSibling); //上一個兄弟
  16. console.log(document.body.firstChild == childs[0]); //第一個孩子節(jié)點
  17. console.log(childs[0].ownerDocument); //任何節(jié)點都屬于它所在的文檔
  18. console.log(document.body.hasChildNodes()); //在包含一個或多個節(jié)點的情況下返回true
  19. console.log(childs[0].hasChildNodes());
  20. }
  21. </script>
  22. </head>
  23. <body>
  24. <!-- 注釋 -->
  25. hello
  26. <div>
  27. <span>world</span>
  28. </div>
  29. 你好
  30. <div>
  31. one
  32. </div>
  33. </body>

輸出結(jié)果:

      



 

Node類型的操作節(jié)點

  • appendChild()——  向childNodes列表末尾添加一個節(jié)點   
  1. <head>
  2. <meta charset="UTF-8">
  3. <title>node節(jié)點操作</title>
  4. <style>
  5. .content{
  6. border:1px solid black;
  7. overflow: hidden;
  8. }
  9. .content > div{
  10. width:50px;
  11. height: 50px;
  12. background-color: red;
  13. float: left;
  14. margin: 10px;
  15. }
  16. .content .two{
  17. background-color: blue;
  18. }
  19. </style>
  20. <script>
  21. window.onload = function(){
  22. var div = document.getElementsByClassName('one')[0]; //通過classname來獲取元素
  23. console.log(div);
  24. //復(fù)制
  25. var newDiv = div.cloneNode(true);
  26. var btns = document.getElementsByTagName('button'); //選中所有button元素
  27. console.log(btns);
  28. //添加點擊效果
  29. btns[0].onclick = function(){
  30. //追加節(jié)點
  31. var content = document.getElementsByClassName('content')[0];
  32. content.appendChild(newDiv);
  33. }
  34. }
  35. </script>
  36. </head>
  37. <body>
  38. <button>點擊追加</button>
  39. <div class="content">
  40. <div class="one">
  41. <span>one</span>
  42. </div>
  43. <div class="two">
  44. two
  45. </div>
  46. </div>
  47. </body>

輸出結(jié)果:

                     點擊前:

                     點擊后:


  • insertBefore()——第一個參數(shù):要插入的節(jié)點,第二個參數(shù):作為參照的節(jié)點
  • replaceChild()——第一個參數(shù):要插入的節(jié)點,第二個參數(shù):要替換的節(jié)點
  • removeChild()——一個參數(shù),即要刪除的節(jié)點
  • cloneNode()——復(fù)制節(jié)點
  1. <head>
  2. <meta charset="UTF-8">
  3. <title>node</title>
  4. <style>
  5. .content{
  6. border:1px solid black;
  7. overflow: hidden;
  8. }
  9. .content > div{
  10. width:50px;
  11. height: 50px;
  12. background-color: red;
  13. float: left;
  14. margin: 10px;
  15. }
  16. .content .two{
  17. background-color: blue;
  18. }
  19. .content .three{
  20. background-color: pink;
  21. }
  22. </style>
  23. <script>
  24. window.onload = function(){
  25. var btns = document.getElementsByTagName('button');
  26. console.log(btns);
  27. var content = document.getElementsByClassName('content')[0];
  28. var newDiv = document.getElementsByClassName('one')[0];
  29. //克隆one,要插入的節(jié)點
  30. newDiv = newDiv.cloneNode(true);
  31. //粉色div,參考的節(jié)點
  32. var div3 = document.getElementsByClassName('three')[0];
  33. //插入節(jié)點
  34. btns[0].onclick = function(){
  35. content.insertBefore(newDiv,div3);
  36. }
  37. //替換節(jié)點
  38. btns[1].onclick = function(){
  39. content.replaceChild(newDiv,div3);
  40. }
  41. //移除節(jié)點
  42. btns[2].onclick = function(){
  43. content.removeChild(div3);
  44. }
  45. }
  46. </script>
  47. </head>
  48. <body>
  49. <button>插入節(jié)點</button>
  50. <button>替換節(jié)點</button>
  51. <button>刪除節(jié)點</button>
  52. <div class="content">
  53. <div class="one">one</div>
  54. <div class="two">two</div>
  55. <div class="three">three</div>
  56. </div>
  57. </body>

點擊前:

 

點擊“插入節(jié)點”:

 

點擊“替換節(jié)點”:

 

點擊“刪除節(jié)點”:

 

 

 

 

 

 

 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
學(xué)習(xí)03-js(獲取元素,事件基礎(chǔ),操作元素,節(jié)點獲取元素,焦點)
JavaScript DOM–節(jié)點操作
html選項卡
移動端手勢庫Hammer.js學(xué)習(xí)
JS變量+作用域
JavaScript 節(jié)點及層級操作
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服