| 目次 |
|---|
|
・DOM要素の追加・削除 ・内部挿入 ・外部挿入 ・包囲 ・置換 ・削除 ・複製 |
要素の追加・削除を、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行で記述することが可能です。
選択した要素内に子要素として追加することが可能です。
リスト3. append(コンテンツ)
function Sample23(){
jQuery('.Sample23 li').append(
'<ul><li>入れ子 ' + getNowTime() + '</li></ul>'
);
}
実装例
リスト4. appendTo(CSSセレクタ)
function Sample24(){
jQuery('.Sample24Org li:first').appendTo('.Sample24');
}
実装例
【追加先】
【追加元】
リスト5. prepend(コンテンツ)
function Sample25(){
jQuery('.Sample25 li').prepend(
'<ul><li>入れ子 ' + getNowTime() + '</li></ul>'
);
}
実装例
リスト6. prependTo(CSSセレクタ)
function Sample26(){
jQuery('.Sample26Org li:last').prependTo('.Sample26');
}
実装例
【追加先】
【追加元】
選択した要素に兄弟要素として追加することが可能です。
リスト7. after(コンテンツ)
function Sample37(){
jQuery('.Sample37').after(
'<p>追加 ' + getNowTime() + '</p>'
);
}
実装例
リスト8. insertAfter(CSSセレクタ)
function Sample38(){
jQuery('.Sample38 li:first').insertAfter('.Sample38 li:last');
}
実装例
リスト9. before(コンテンツ)
function Sample39(){
jQuery('.Sample39').before(
'<p>追加 ' + getNowTime() + '</p>'
);
}
実装例
リスト10. insertBefore(CSSセレクタ)
function Sample310(){
jQuery('.Sample310 li:first').insertBefore('.Sample310 li:last');
}
実装例
選択した要素の親要素として追加することが可能です。
リスト11. wrap(コンテンツ|jQueryオブジェクト)
function Sample411(){
// 「包む対象」だけを包みます。
var wrp = jQuery('div.Sample411').wrap('<div class="RedWraper"></div>');
// 「包む対象」を使ってボタンを包みます。
jQuery('button.Sample411').wrap(wrp);
}
実装例
リスト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
リスト13. wrapInner(コンテンツ|jQueryオブジェクト)
実装例
選択した要素を置換することが可能です。
リスト14. replaceWith(コンテンツ|jQueryオブジェクト)
function Sample514(){
jQuery('.Sample514 li').replaceWith(
'<li class="RedWraper">' + getNowTime() + '</li>'
);
}
実装例
リスト15. replaceAll(CSSセレクト)
function Sample515(){
// 置換内容を作る
var src = jQuery('<li class="RedWraper">' + getNowTime() + '</li>');
// 偶数箇所を置換
src.replaceAll('.Sample515 li:odd');
}
実装例
選択した要素をまとめて削除することが可能です。
リスト16. empty()
function Sample616(){
// 奇数箇所のみ空にする
jQuery('.Sample616 li:even').empty();
}
実装例
リスト17. remove([CSSセレクタ])
function Sample617(){
// 偶数箇所の最初のみ削除する
jQuery('.Sample617 li:odd').remove(':first');
}
実装例
選択した要素を複製することが可能です。
リスト18. clone([true])
function Sample718(){
// コピー元
var src = jQuery('.Sample718');
// イベント込みでコピー
src.clone(true).insertAfter(src);
}
実装例