搜尋
首頁web前端js教程jQuery中DOM樹運算之使用反向插入方法實例分析_jquery

本文實例講述了jQuery中DOM樹操作之使用反向插入方法。分享給大家供大家參考。具體分析如下:

使用反向插入法

這裡我們先把創建的內容插人到元素前面,然後再把同一個元素插人到文件 中的另一個位置。通常,當在jQuery中操作元素時,利用連綴方法更簡潔也更有效。可是我們現在沒有辦法這樣做,因為this是.insertBefore()的目標,是.appendTo()的內容。此時,利 用反向插入法,可以幫我們解決問題。

像.insertBefore()和.appendTo()這樣的插人方法,一般都有一個對應的反向方法。反 向方法也執行相同的操作,只不過「目標」和「內容」正好相反。例如:

複製程式碼 程式碼如下:
$('

Hello

').appendTo('# container');

與下面的程式碼結果一樣:

複製程式碼 程式碼如下:
$('#container').append('

Hello

');

下面我們就使用.before()代替.insertBefore()來重構程式碼,請參考以下程式碼:

複製程式碼 程式碼如下:
$(document).ready(function() {
var $notes = $('
    ')
    .insertBefore('#footer');
    $('span.footnote').each(function(index) {
    $(this)
    .before('' (index 1) '')
    .appendTo($notes)
    .wrap('
  1. ');
    });
    });
  2. 插入方法回調

    反向插入法可以接受一個函數作為參數,與.attr()和.css()方法類似。 這個傳入的函數會針對每個目標元素調用,傳回被插入的HTML字串。在此其 實也可以使用這個技術,但由於這樣就需要對每個腳註都重複一遍相同的操作, 所以還是使用一個.each()方法來得更清晰。

    現在,我們可以考慮最後一步了:在正文中相應的位置創建指向匹配腳註的鏈接和在腳註中 創建指向正文位置的鏈接。為此,每個腳註需要4處標記:兩個鏈接,一個在正文中,一個在腳 註中;以及兩個id屬性。因為這樣一來,傳人.before()方法的參數會變得複雜,所以有必要 在這裡使用一種新的建立字串的方法。
    在上面的程式碼中,我們使用了 操作符來拼接字串。使用 操作符雖然沒有問題,但
    如果要拼接的字串太多,那看起來就會很亂。所以,我們在這裡使用陣列的.join()方法來構 建立一個更大的陣列。換句話說,下面的兩行程式碼結果相同。

    複製程式碼 程式碼如下:
    var str = 'a' 'b' 'c';
    var str = ['a', 'b', 'c'].join('');

    雖然這個例子要求輸人更多字符,但使用.join()方法可以避免因要拼接的字符串過多而引 起混亂。下面我們再來看看範例程式碼吧,如下程式碼就是使用.join()建立字串的過程。

    複製程式碼 程式碼如下:
    $(document).ready(function() {
    var $notes = $('
      ') .insertBefore('#footer'); $('span.footnote').each(function(index) { $(this)
      .before([
      '', index 1,
      '
      '
      ].join(''))
      .appendTo($notes)
      .wrap('
    1. ');
      });
      });
    2. 注意,由於陣列的每個元素會分別執行運算,因此不再需要把index 1放在括號裡了。 使用這種技巧,可以為腳註標籤添加一個指向頁面底部的連結和一個唯一的id值。同時在後 面的方法中,也要為

    3. 元素中加入對應的id屬性,以便該連結有相符的目標,請參考以下程式碼:
      複製程式碼 程式碼如下:
      $(document).ready(function() {
      var $notes = $('
        ') .insertBefore('#footer'); $('span.footnote').each(function(index) { $(this)
        .before([
        '',
        '', index 1,
        '
        '
        ].join(''))
        .appendTo($notes)
        .wrap('
      1. ');
        });
        });
      2. 新增了這些標記之後,每個腳註標籤就有了指向頁面底部對應腳註的連結。那麼所剩的就是 在腳註中建立一個指向其上下文的連結了。為此,可以使用.appendTo()的反向方 法.append(),請參閱以下程式碼:

        複製程式碼 程式碼如下:
        $(document).ready(function() {
        var $notes = $('
          '"id="context-', index 1,
          '"class = "context__>',
          '', index 1,
          '
          '
          ].join(''))
          .appendTo($notes)
          .append([
          ' (');
          });
          });

          注意,這裡的href指向了腳註標籤中的id。在運行結果中,可以看到包含新連結的腳註。

          希望本文所述對大家的jQuery程式設計有所幫助。

          陳述
          本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
          jquery实现多少秒后隐藏图片jquery实现多少秒后隐藏图片Apr 20, 2022 pm 05:33 PM

          实现方法:1、用“$("img").delay(毫秒数).fadeOut()”语句,delay()设置延迟秒数;2、用“setTimeout(function(){ $("img").hide(); },毫秒值);”语句,通过定时器来延迟。

          axios与jquery的区别是什么axios与jquery的区别是什么Apr 20, 2022 pm 06:18 PM

          区别:1、axios是一个异步请求框架,用于封装底层的XMLHttpRequest,而jquery是一个JavaScript库,只是顺便封装了dom操作;2、axios是基于承诺对象的,可以用承诺对象中的方法,而jquery不基于承诺对象。

          jquery怎么在body中增加元素jquery怎么在body中增加元素Apr 22, 2022 am 11:13 AM

          增加元素的方法:1、用append(),语法“$("body").append(新元素)”,可向body内部的末尾处增加元素;2、用prepend(),语法“$("body").prepend(新元素)”,可向body内部的开始处增加元素。

          jquery怎么修改min-height样式jquery怎么修改min-height样式Apr 20, 2022 pm 12:19 PM

          修改方法:1、用css()设置新样式,语法“$(元素).css("min-height","新值")”;2、用attr(),通过设置style属性来添加新样式,语法“$(元素).attr("style","min-height:新值")”。

          jquery中apply()方法怎么用jquery中apply()方法怎么用Apr 24, 2022 pm 05:35 PM

          在jquery中,apply()方法用于改变this指向,使用另一个对象替换当前对象,是应用某一对象的一个方法,语法为“apply(thisobj,[argarray])”;参数argarray表示的是以数组的形式进行传递。

          jquery怎么删除div内所有子元素jquery怎么删除div内所有子元素Apr 21, 2022 pm 07:08 PM

          删除方法:1、用empty(),语法“$("div").empty();”,可删除所有子节点和内容;2、用children()和remove(),语法“$("div").children().remove();”,只删除子元素,不删除内容。

          jquery on()有几个参数jquery on()有几个参数Apr 21, 2022 am 11:29 AM

          on()方法有4个参数:1、第一个参数不可省略,规定要从被选元素添加的一个或多个事件或命名空间;2、第二个参数可省略,规定元素的事件处理程序;3、第三个参数可省略,规定传递到函数的额外数据;4、第四个参数可省略,规定当事件发生时运行的函数。

          jquery怎么去掉只读属性jquery怎么去掉只读属性Apr 20, 2022 pm 07:55 PM

          去掉方法:1、用“$(selector).removeAttr("readonly")”语句删除readonly属性;2、用“$(selector).attr("readonly",false)”将readonly属性的值设置为false。

          See all articles

          熱AI工具

          Undresser.AI Undress

          Undresser.AI Undress

          人工智慧驅動的應用程序,用於創建逼真的裸體照片

          AI Clothes Remover

          AI Clothes Remover

          用於從照片中去除衣服的線上人工智慧工具。

          Undress AI Tool

          Undress AI Tool

          免費脫衣圖片

          Clothoff.io

          Clothoff.io

          AI脫衣器

          AI Hentai Generator

          AI Hentai Generator

          免費產生 AI 無盡。

          熱門文章

          R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
          3 週前By尊渡假赌尊渡假赌尊渡假赌
          R.E.P.O.最佳圖形設置
          3 週前By尊渡假赌尊渡假赌尊渡假赌
          R.E.P.O.如果您聽不到任何人,如何修復音頻
          3 週前By尊渡假赌尊渡假赌尊渡假赌

          熱工具

          mPDF

          mPDF

          mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

          SecLists

          SecLists

          SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

          禪工作室 13.0.1

          禪工作室 13.0.1

          強大的PHP整合開發環境

          Safe Exam Browser

          Safe Exam Browser

          Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

          PhpStorm Mac 版本

          PhpStorm Mac 版本

          最新(2018.2.1 )專業的PHP整合開發工具