jQueryにおけるDOMツリー操作の逆挿入法の使用例の解析

4115 ワード

本明細書の例では、jQueryにおけるDOMツリー操作の逆挿入方法の使用について説明する.皆さんの参考にしてください.具体的な分析は以下の通りである.
逆挿入方法の使用
ここでは、作成したコンテンツをエレメントの前に挿入し、ドキュメント内の別の場所に同じエレメントを挿入します.一般に、jQueryで要素を操作する場合、接尾辞法を用いた方が簡潔で効率的である.しかし、これは.insertBefore()の目標であり、.appendTo()の内容であるため、私たちは今このようにすることはできません.このとき,逆挿入法を用いることで,問題を解決することができる.
.insertBefore()や.appendTo()のような挿入方法には,一般に対応する逆方向の方法がある.リバースメソッドも同じ操作を実行しますが、「ターゲット」と「コンテンツ」は正反対です.例:

   $('

Hello

').appendTo('#container');

次のコードの結果と同じです.

   $('#container').append('

Hello

');

次に、.insertBefore()の代わりに.before()を使用してコードを再構築します.次のコードを参照してください.

   $(document).ready(function() { 
  
var $notes = $('
    ')
    .insertBefore('#footer');
    $('span.footnote').each(function(index) {
    $(this)
    .before('' + (index + 1) + '')
    .appendTo($notes)
    .wrap('
  1. ');
    });
    });

插入方法回调

反向插入方法可以接受一个函数作为参数,与.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. ');
    });
    });

注意,由于数组的每个元素会分别执行运算,因此不再需要把index+1放在括号里了。 使用这种技巧,可以为脚注标签添加一个指向页面底部的链接和一个唯一的id值。同时在后 面的方法中,也要给

  • 元素中添加相应的id属性,以便该链接有匹配的目标,参见如下代码:
    
       $(document).ready(function() { 
      
    var $notes = $('
      ') .insertBefore('#footer'); $('span.footnote').each(function(index) { $(this)
      .before([
      '', '', index + 1, ''
      ].join(''))
      .appendTo($notes)
      .wrap('
    1. ');
      });
      });

    添加了这些标记之后,每个脚注标签就有了指向页面底部对应脚注的链接。那么所剩的就是 在脚注中创建一个指向其上下文的链接了。为此,可以使用.appendTo()的反向方 法.append(),参见如下代码:

    
       $(document).ready(function() { 
      
    var $notes = $('
      '"id="context-', index + 1,
      '"class = "context__>',
      '', index + 1,
      '
      '
      ].join(''))
      .appendTo($notes)
      .append([
      ' ('); }); });

    ここでhrefは、脚注ラベルのidを指します.実行結果には、新しいリンクを含む脚注が表示されます.
    本文で述べたことが皆さんのjQueryプログラム設計に役立つことを願っています.