整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          jQuery 獲取當前節點的html包含當前節點的方法

          開發過程中,jQuery.html() 是獲取當前節點下的html代碼,并不包含當前節點本身的代碼,然后我們有時候確需要,找遍jQuery api文檔也沒有任何方法可以拿到。

          看到有的人通過parent().html(),如果當前元素沒有兄弟元素還行,如果有那就行不通了。后臺實驗發現有一個jQuery的一個方法可以解決,而且非常簡便,如下:

          jQuery.prop("outerHTML");

          <div class="test"><p>hello,你好!</p></div>
          <script>$(".test").prop("outerHTML");</script>

          輸出結果為:<div class="test"><P>hello,你好!</p></div>

          因為原生JS DOM里有一個內置屬性 outerHTML (看清大小寫哦,JS是區分大小寫的)用來獲取當前節點的html代碼(包含當前節點),所以用jQuery的prop()能拿到,經過實驗attr()方法是拿不到的,不信的話,大家也可以嘗試嘗試,謝謝。

          當然也有人用jQuery的 clone() 函數配合append() 來創建一個只有一個子元素的節點,然后來拿節點的html,這樣也是可行的,但是代碼繁瑣。

          OM 節點

          根據 W3C 的 HTML DOM 標準,HTML 文檔中的所有內容都是節點:

          整個文檔是一個文檔節點
          每個 HTML 元素是元素節點
          HTML 元素內的文本是文本節點
          每個 HTML 屬性是屬性節點
          注釋是注釋節點

          HTML DOM 節點樹

          HTML DOM 將 HTML 文檔視作樹結構。這種結構被稱為節點樹:

          HTML DOM Tree 實例


          通過 HTML DOM,樹中的所有節點均可通過 JavaScript 進行訪問。所有 HTML 元素(節點)均可被修改,也可以創建或刪除節點。

          節點父、子和同胞

          節點樹中的節點彼此擁有層級關系。

          父(parent)、子(child)和同胞(sibling)等術語用于描述這些關系。父節點擁有子節點。同級的子節點被稱為同胞(兄弟或姐妹)。

          在節點樹中,頂端節點被稱為根(root)
          每個節點都有父節點、除了根(它沒有父節點)
          一個節點可擁有任意數量的子
          同胞是擁有相同父節點的節點
          下面的圖片展示了節點樹的一部分,以及節點之間的關系:


          請看下面的 HTML 片段:

          <html>
            <head>
              <title>DOM 教程</title>
            </head>
            <body>
              <h1>DOM 第一課</h1>
              <p>Hello world!</p>
            </body>
          </html>
          
          • 從上面的 HTML 中:
          • <html> 節點沒有父節點;它是根節點
          • <head> 和 <body> 的父節點是 <html> 節點
          • 文本節點 "Hello world!" 的父節點是 <p> 節點

          并且:

          • <html> 節點擁有兩個子節點:<head> 和 <body>
          • <head> 節點擁有一個子節點:<title> 節點
          • <title> 節點也擁有一個子節點:文本節點 "DOM 教程"
          • <h1> 和 <p> 節點是同胞節點,同時也是 <body> 的子節點

          并且:

          • <head> 元素是 <html> 元素的首個子節點
          • <body> 元素是 <html> 元素的最后一個子節點
          • <h1> 元素是 <body> 元素的首個子節點
          • <p> 元素是 <body> 元素的最后一個子節點

          警告!

          DOM 處理中的常見錯誤是希望元素節點包含文本。

          在本例中:<title>DOM 教程</title>,元素節點 <title>,包含值為 "DOM 教程" 的文本節點。

          可通過節點的 innerHTML 屬性來訪問文本節點的值。

          過 HTML DOM,您能夠使用節點關系在節點樹中導航。


          HTML DOM 節點列表

          getElementsByTagName() 方法返回節點列表。節點列表是一個節點數組。

          下面的代碼選取文檔中的所有 <p> 節點:

          實例

          varx=document.getElementsByTagName("p");

          可以通過下標號訪問這些節點。如需訪問第二個 <p>,您可以這么寫:

          y=x[1];

          嘗試一下 ?

          注意:

          下標號從 0 開始。


          HTML DOM 節點列表長度

          length 屬性定義節點列表中節點的數量。

          您可以使用 length 屬性來循環節點列表:

          實例

          x=document.getElementsByTagName("p");for(i=0;i<x.length;i++){document.write(x[i].innerHTML); document.write("<br>");}

          實例解析:

          • 獲取所有 <p> 元素節點

          • 輸出每個 <p> 元素的文本節點的值


          導航節點關系

          您能夠使用三個節點屬性:parentNode、firstChild 以及 lastChild ,在文檔結構中進行導航。

          請看下面的 HTML 片段:

          <html><head><metacharset="utf-8"></head><body><p>Hello World!</p><div><p>DOM 是非常有用的!</p><p>這個實例演示了節點的關系。</p></div></body></html>

          • 首個 <p> 元素是 <body> 元素的首個子元素(firstChild)

          • <div> 元素是 <body> 元素的最后一個子元素(lastChild)

          • <body> 元素是首個 <p> 元素和 <div> 元素的父節點(parentNode)

          firstChild 屬性可用于訪問元素的文本:

          實例

          <pid="intro">Hello World!</p><script>x=document.getElementById("intro");document.write(x.firstChild.nodeValue);</script>

          嘗試一下 ?


          DOM 根節點

          這里有兩個特殊的屬性,可以訪問全部文檔:

          • document.documentElement - 全部文檔

          • document.body - 文檔的主體

          實例

          <p>Hello World!</p><div><p>DOM 是非常有用的!</p><p>這個實例演示了 <b>document.body</b> 屬性。</p></div><script>alert(document.body.innerHTML);</script>

          嘗試一下 ?


          childNodes 和 nodeValue

          除了 innerHTML 屬性,您也可以使用 childNodes 和 nodeValue 屬性來獲取元素的內容。

          下面的代碼獲取 id="intro" 的 <p> 元素的值:

          實例

          <pid="intro">Hello World!</p><script>txt=document.getElementById("intro").childNodes[0].nodeValue;document.write(txt);</script>

          嘗試一下 ?

          在上面的例子中,getElementById 是一個方法,而 childNodes 和 nodeValue 是屬性。


          主站蜘蛛池模板: 国产一区二区三区电影| 国产在线视频一区| 好吊妞视频一区二区| 亚洲国产av一区二区三区丶| 亚洲一区二区三区高清不卡| 曰韩人妻无码一区二区三区综合部| 无码人妻一区二区三区免费手机| 午夜一区二区在线观看| 亚洲美女高清一区二区三区| 久久精品国产一区| 日本在线视频一区二区| 日韩毛片一区视频免费| 久久久久久免费一区二区三区| 国产自产对白一区| 国产伦精品一区二区免费 | 无码日韩人妻av一区免费| 国产精品电影一区二区三区| 一区五十路在线中出| 无码一区二区三区免费| 爱爱帝国亚洲一区二区三区| 成人免费区一区二区三区| bt7086福利一区国产| 国产一区三区二区中文在线| 日本视频一区在线观看免费| 日韩一区二区三区在线观看| 果冻传媒董小宛一区二区| 亚洲AV无码一区二区三区牲色 | 日韩人妻无码一区二区三区久久99 | 一区二区三区免费看| 91午夜精品亚洲一区二区三区| 国产av一区二区精品久久凹凸| 久久久无码精品国产一区| 精品一区二区三区视频| 精品视频一区二区三三区四区| 视频一区视频二区在线观看| 波多野结衣的AV一区二区三区| 亚洲高清一区二区三区电影| 日韩一区二区电影| 国产成人精品a视频一区| 在线精品视频一区二区| 色狠狠一区二区三区香蕉|