要素の追加・削除を、W3Cから勧告されているDOMに関する規格を用いて行おうとすると困難なものがあります。
jQueryを用いると、要素の追加・削除が簡単に行えます。
以下は比較の実装例です。
1
リスト1. W3C DOMでの要素追加例
function Sample11(){
// まず追加する要素を作る
var li = document.createElement('li');
// 要素内のテキストを作る
li.innerHTML = 'DOMにて ' + getNowTime();
// 追加する親
var ul = document.getElementById('Sample1');
// 追加
ul.appendChild(li);
}
リスト2. jQueryでの要素追加例
function Sample12(){
jQuery('#Sample1').append(
'<li>jQueryにて ' + getNowTime() + '</li>'
);
}
リスト2は、表現上 3行に分けていますが、実質1行で記述することが可能です。
選択した要素内に子要素として追加することが可能です。
- append(コンテンツ)
-
指定した全要素の最後に、コンテンツを追加します。
DOMのappendChildメソッドに似ています。
-
返り値:jQueryオブジェクト
-
リスト3. append(コンテンツ)
function Sample23(){
jQuery('.Sample23 li').append(
'<ul><li>入れ子 ' + getNowTime() + '</li></ul>'
);
}
実装例
-
- appendTo(CSSセレクタ)
-
指定した全要素を、CSSセレクタに沿った要素の最後に追加します。
要素の移動に便利です。
-
返り値:jQueryオブジェクト
-
リスト4. appendTo(CSSセレクタ)
function Sample24(){
jQuery('.Sample24Org li:first').appendTo('.Sample24');
}
実装例
【追加先】
【追加元】
-
- prepend(コンテンツ)
-
指定した全要素の先頭に、コンテンツを追加します。
-
返り値:jQueryオブジェクト
-
リスト5. prepend(コンテンツ)
function Sample25(){
jQuery('.Sample25 li').prepend(
'<ul><li>入れ子 ' + getNowTime() + '</li></ul>'
);
}
実装例
-
- prependTo(CSSセレクタ)
-
指定した全要素を、CSSセレクタに沿った要素の先頭に追加します。
要素の移動に便利です。
-
返り値:jQueryオブジェクト
-
リスト6. prependTo(CSSセレクタ)
function Sample26(){
jQuery('.Sample26Org li:last').prependTo('.Sample26');
}
実装例
【追加先】
【追加元】
選択した要素に兄弟要素として追加することが可能です。
- after(コンテンツ)
-
指定した全要素の直後に、コンテンツを追加します。
-
返り値:jQueryオブジェクト
-
リスト7. after(コンテンツ)
function Sample37(){
jQuery('.Sample37').after(
'<p>追加 ' + getNowTime() + '</p>'
);
}
実装例
-
- insertAfter(CSSセレクタ)
-
指定した全要素の直後に、コンテンツを追加します。
順番の入替などに便利です。
-
返り値:jQueryオブジェクト
-
リスト8. insertAfter(CSSセレクタ)
function Sample38(){
jQuery('.Sample38 li:first').insertAfter('.Sample38 li:last');
}
実装例
- A
- B
- C
-
- before(コンテンツ)
-
指定した全要素の直前に、コンテンツを追加します。
-
返り値:jQueryオブジェクト
-
リスト9. before(コンテンツ)
function Sample39(){
jQuery('.Sample39').before(
'<p>追加 ' + getNowTime() + '</p>'
);
}
実装例
-
- insertBefore(CSSセレクタ)
-
指定した全要素の直前に、コンテンツを追加します。
順番の入替などに便利です。
-
返り値:jQueryオブジェクト
-
リスト10. insertBefore(CSSセレクタ)
function Sample310(){
jQuery('.Sample310 li:first').insertBefore('.Sample310 li:last');
}
実装例
- A
- B
- C
選択した要素の親要素として追加することが可能です。
- wrap(コンテンツ|jQueryオブジェクト)
-
指定した全要素をコンテンツまたはjQueryオブジェクトを用いて親要素として包囲します。
-
返り値:jQueryオブジェクト
-
リスト11. wrap(コンテンツ|jQueryオブジェクト)
function Sample411(){
// 「包む対象」だけを包みます。
var wrp = jQuery('div.Sample411').wrap('<div class="RedWraper"></div>');
// 「包む対象」を使ってボタンを包みます。
jQuery('button.Sample411').wrap(wrp);
}
実装例
包む対象
-
- wrapAll(コンテンツ|jQueryオブジェクト)
-
指定した要素群をまとめてコンテンツまたはjQueryオブジェクトを用いて親要素として包囲します。
-
返り値:jQueryオブジェクト
-
リスト12. wrapAll(コンテンツ|jQueryオブジェクト)
function Sample412(){
// 「包む対象-2」「包む対象-3」「包む対象-4」をまとめて包みます。
var wrp = jQuery('p.Sample412').slice(1,4).wrapAll('<div class="RedWraper"></div>');
}
実装例
包む対象-1
包む対象-2
包む対象-3
包む対象-4
包む対象-5
-
- wrapInner(コンテンツ|jQueryオブジェクト)
-
指定した要素群の内容をコンテンツまたはjQueryオブジェクトを用いて内容の親要素として包囲します。
-
返り値:jQueryオブジェクト
-
リスト13. wrapInner(コンテンツ|jQueryオブジェクト)
実装例