国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JavaScript DOM 6 - 節(jié)點(diǎn)的創(chuàng)建,插入,替換,刪除

liuchengxu / 2907人閱讀

摘要:來看一個(gè)在本文檔嵌入一個(gè)來自中的節(jié)點(diǎn)的例子節(jié)點(diǎn)的插入在父節(jié)點(diǎn)上調(diào)用方法,參數(shù)是想要插入的子節(jié)點(diǎn),執(zhí)行的結(jié)果是,這個(gè)子節(jié)點(diǎn)會(huì)被成為父節(jié)點(diǎn)的最后一個(gè)子節(jié)點(diǎn)。必須傳入一個(gè)或者,不能省略。

1: 節(jié)點(diǎn)的創(chuàng)建
新建一個(gè)新節(jié)點(diǎn)的方式主要有三種:
1: createElement()

document.createElement(tagName); //返回一個(gè)HTMLElement類型的節(jié)點(diǎn),參數(shù)為字符串類型的標(biāo)簽名字

var p = document.createElement("p"); //

2: createTextNode()

document.createTextNode(text);//返回一個(gè)Text類型的節(jié)點(diǎn),參數(shù)為這個(gè)節(jié)點(diǎn)里的內(nèi)容,字符串

var text = document.createTextNode("text node content"); //"text node content"

3: cloneNode()

targetElement.cloneNode(deepClone);//它接受一個(gè)參數(shù),如果為true,就返回對(duì)targetElement的深拷貝,也就是返回targetElement包含它的后代子節(jié)點(diǎn);如果為false,就只返回targetElement本身,不包含任何的子節(jié)點(diǎn)

比如,我們有一段HTML:

  • book 1
  • book 2

我們對(duì)"

    "元素分別進(jìn)行深拷貝和淺拷貝:

    4: importNode()

    document.importNode(externalNode, deep);
    
    externalNode: 來自別的document的node, 比方說一個(gè)iframe的node
    deep: 是否深拷貝,默認(rèn)值為false. 在DOM4的時(shí)候,在deep缺省的情況下,它的默認(rèn)值是true,但是后來又變?yōu)閒alse。所以為了向前向后兼容,deep永遠(yuǎn)給一個(gè)值,不要缺省。
    

    來看一個(gè)在本文檔嵌入一個(gè)來自iframe中的節(jié)點(diǎn)的例子:

    var iframe = document.getElementsByTagName("iframe")[0];
    var oldNode = iframe.contentWindow.document.getElementById("myNode");
    var newNode = document.importNode(oldNode, true);
    document.getElementById("container").appendChild(newNode);
    

    2: 節(jié)點(diǎn)的插入
    1: appendChild()

    parentNode.appendChild(childNode)
    

    在父節(jié)點(diǎn)上調(diào)用appendChild()方法,參數(shù)是想要插入的子節(jié)點(diǎn),執(zhí)行的結(jié)果是,這個(gè)子節(jié)點(diǎn)會(huì)被成為父節(jié)點(diǎn)的最后一個(gè)子節(jié)點(diǎn)。
    假如我們之前有一段HTMl:

    • book 1
    • book 2

    我們現(xiàn)在先新建一個(gè)"

  • "元素,然后把它添加到"
      "里面:

      var lastBook = document.createElement("li");
      lastBook.textContent = "last book";
      var bookList = document.getElementsByClassName("bookList")[0];
      bookList.appendChild(lastBook);

      再執(zhí)行完上面的代碼之后,之前的HTML就會(huì)變成:

      • book 1
      • book 2
      • last book

      2: insertBefore()

      var insertedNode = parentNode.insertBefore(newNode, referenceNode);
      
      newNode: 想要插入的節(jié)點(diǎn)
      referenceNode: 新的節(jié)點(diǎn)插入到referenceNode節(jié)點(diǎn)之前。必須傳入一個(gè)node或者null,不能省略。
      

      還是上面的一段HTML:

      • book 1
      • book 2

      我們嘗試在最后一個(gè)"

    • "前面插入一個(gè)新的"
    • ":

      var bookList = document.getElementsByClassName("bookList")[0];
      var lastLi = bookList.lastElementChild;
      var newLi = document.createElement("li");
      newLi.textContent = "new book";
      bookList.insertBefore(newLi, lastLi);

      執(zhí)行完上面的代碼之后,原來的"

    • "就變?yōu)椋?/p>
      • book 1
      • new book
      • book 2

      3: insertAdjacentHTML()

      element.insertAdjacentHTML(position, HTMLText);//參數(shù)為一段HTML文本
      element.insertAdjacentElement(position, Element);//參數(shù)為一個(gè)Element
      element.insertAdjacentText(position, text); //插入一段純文本

      以上的三個(gè)方法,都是根據(jù)position的值,在特定的位置插入一個(gè)節(jié)點(diǎn),只是參數(shù)的類型不一樣。position的值有四個(gè):

      1: ‘beforeBegin’
      2: "afterBegin"
      3: "beforeEnd"
      4: "afterEnd"

      以上四個(gè)值,駝峰和全小寫都可以。


      1: 先來就以上三個(gè)不同的方法的使用和效果做一個(gè)對(duì)比:
      還是先準(zhǔn)備一段HTML:

       
      • book 1
      • book 2

      1: element.insertAdjacentHTML(position, HTMLText);

      var bookList = document.getElementsByClassName("bookList")[0];
      bookList.insertAdjacentHTML("afterBegin","

      new node

      ");

      執(zhí)行完之后,原來的HTML變成這樣:

      2: element.insertAdjacentElement(position, Element);
      還是之前的那段HTML,然后我們執(zhí)行:

      var bookList = document.getElementsByClassName("bookList")[0];
      var newLi = document.createElement("li");
      newLi.textContent = "new node";
      bookList.insertAdjacentElement("afterBegin", newLi)
      

      執(zhí)行完之后,效果變這樣:

      3: element.insertAdjacentText(position, text)
      還是之前的那段HTML, 然后我們執(zhí)行:

      var bookList = document.getElementsByClassName("bookList")[0];
      bookList.insertAdjacentText("afterBegin", "text content")
      

      執(zhí)行之后,會(huì)在"

        "的最開頭添加一段純文本。

        3: 節(jié)點(diǎn)的替換

        oldNode.parentNode.replaceChild(newNode, oldNode);

        還是之前的那段HTML:

        • book 1
        • book 2

        我們嘗試把第一個(gè)"

      • "元素?fù)Q掉:

        var bookList = document.getElementsByClassName("bookList")[0];
        var oldLi = bookList.firstElementChild;
        var newLi = document.createElement("li");
        newLi.textContent = "new node";
        bookList.replaceChild(newLi, oldLi);

        執(zhí)行完上面的代碼之后呢,之前的HTML就變成了這樣:

        • new node
        • book 2

        4: 節(jié)點(diǎn)的刪除

        targetNode.parentNode.removeChild(targetNode);

        依然是在目標(biāo)元素的父節(jié)點(diǎn)上調(diào)用這個(gè)方法,把目標(biāo)元素作為參數(shù)傳進(jìn)去。
        還是我們之前的那段HTML:

        • book 1
        • book 2

        我們嘗試著把第一個(gè)"

      • "刪掉:

        var bookList = document.getElementsByClassName("bookList")[0];
        bookList.removeChild(bookList.firstElementChild);

        這之后,就只剩下一個(gè)"

      • "元素了:

        • book 2

        removeChild()會(huì)對(duì)父節(jié)點(diǎn)的childNodes產(chǎn)生影響,刪掉了一個(gè)節(jié)點(diǎn),它后面的節(jié)點(diǎn)會(huì)在childNodes里依次往前移動(dòng)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/83645.html

相關(guān)文章

  • 前端_JavaScript_API

    摘要:方法可用的屏幕高度窗口可用的屏幕寬度瀏覽器表示的顏色位數(shù)用戶瀏覽器表示的顏色位數(shù)屏幕的像素高度屏幕的像素寬度對(duì)象返回前一個(gè)返回下一個(gè)返回某個(gè)具體頁面 事件 事件:鼠標(biāo)事件,鍵盤事件,進(jìn)度事件,表單事件,觸摸事件,拖拉事件,其他常見事件.GlobalEventHandler接口DOM(文檔對(duì)象模型)是JavaScript操作網(wǎng)頁的接口,將網(wǎng)頁轉(zhuǎn)為一個(gè)樹狀結(jié)構(gòu),所有的節(jié)點(diǎn)都有借口. DO...

    tunny 評(píng)論0 收藏0
  • JavaScript高級(jí)程序設(shè)計(jì)》(第3版)讀書筆記 第11章 DOM拓展

    摘要:對(duì)的兩個(gè)主要拓展是選擇和。以下插入標(biāo)記的拓展已經(jīng)納入了規(guī)范。在寫模式下,會(huì)根據(jù)指定的字符串創(chuàng)建新的子樹,然后用這個(gè)子樹完全替換調(diào)用元素。在刪除帶有時(shí)間處理程序或引用了其他對(duì)象子樹時(shí),就有可能導(dǎo)致內(nèi)存占用問題。 盡管DOM作為API已經(jīng)非常完善了,但為了實(shí)現(xiàn)更多功能,仍然會(huì)有一些標(biāo)準(zhǔn)或?qū)S械耐卣埂?008年之前,瀏覽器中幾乎所有的拓展都是專有的,此后W3C著手將一些已經(jīng)成為事實(shí)標(biāo)準(zhǔn)的專...

    luck 評(píng)論0 收藏0
  • Javascript--DOM

    摘要:中的所有對(duì)象都是以對(duì)象的形式實(shí)現(xiàn)的。這意味著中的對(duì)象與原生對(duì)象的行為或活動(dòng)特點(diǎn)并不一致。該屬性指向表示整個(gè)文檔的文檔節(jié)點(diǎn)。同時(shí)由要插入的節(jié)點(diǎn)占據(jù)其位置。返回被移除的節(jié)點(diǎn)。操作類名操作類名時(shí),需要通過屬性添加刪除和替換類名。 Note:IE中的所有DOM對(duì)象都是以COM對(duì)象的形式實(shí)現(xiàn)的。這意味著IE中的DOM對(duì)象與原生Javascript對(duì)象的行為或活動(dòng)特點(diǎn)并不一致。 DOM1級(jí)主要定義...

    jsyzchen 評(píng)論0 收藏0
  • JavaScript筆記——常見DOM知識(shí)

    摘要:前言本篇文章以介紹常見的節(jié)點(diǎn)知識(shí)元素操作方法為目的,其中也對(duì)一些比較容易忽略的問題進(jìn)行簡要說明。此外,還有一些方式可以獲得相關(guān)的元素節(jié)點(diǎn)。利用字符串拼接使用字符串拼接的方法插入元素是效率最高的。 前言 本篇文章以介紹常見的DOM節(jié)點(diǎn)知識(shí)、DOM元素操作方法為目的,其中也對(duì)一些比較容易忽略的問題進(jìn)行簡要說明。才疏學(xué)淺,如有紕漏之處或建議歡迎留下評(píng)論。 Node節(jié)點(diǎn) 首先,簡單看看Node...

    madthumb 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<