web関連
【js】既にある要素を移動させる方法
既存の要素を別のところに移動させたかったときの備忘録
jQueryとjavascriptの2パターン紹介
【jQuery】既にある要素を移動する方法
jQueryで移動させたい要素を「要素の中」と「要素の隣(同階層)」に移動させる方法。
要素の中に移動する方法
「要素の中」に移動させる時はappendTo()
又はprependTo()
で移動ができる。
<div class="div1">
<!-- ここから移動 -->
<span class="subject">移動対象の要素</span>
</div>
<div class="div2">
<!-- ここに移動 -->
</div>
<script>
jQuery(function($){
// div2の最後に移動
$('.subject').appendTo('.div2');
// div2の先頭に移動
$('.subject').prependTo('.div2');
});
</script>
これでdiv1
からdiv2
の要素の中に移動ができる。
要素の隣に移動する方法
「要素の隣(同じ階層)」に移動させるときはinsertBefore()
insertAfter()
を使う。
// div2の隣(前)に移動
$('.subject').insertBefore('.div2');
// div2の隣(後)に移動
$('.subject').insertAfter('.div2');
【javascript】既にある要素を移動する方法
javascriptで移動させたい要素を「要素の中」と「要素の隣(同階層)」に移動させる方法。
要素の中に移動する方法
javascriptの場合はappendChild()
とinsertBefore()
を使う。
※insertBefore()
は引数を二つ指定しないと動かない。
parentElement.insertBefore(newElement, referenceElement);
parentElement
…移動先要素newElement
…移動対象要素referenceElement
…省略不可、.firstChild
やnull
などを明示する必要あり(詳しくはこちら)
<div class="div1">
<!-- ここから移動 -->
<span class="subject">移動対象</span>
</div>
<div class="div2">
<!-- ここに移動 -->
</div>
<script>
var subject = document.querySelector(".subject");
var div2 = document.querySelector(".div2");
// div2の最後に移動
div2.appendChild(subject);
// div2の先頭に移動
div2.insertBefore(subject,div2.firstChild);
</script>
div2.firstChild
は.div2
内の先頭に追加を明示している。(null
にすると.div2
内の末尾に追加される)
要素の隣に移動する方法
javascriptで「要素の隣」追加する場合は以下のように書く。
// div2の隣(前)に移動
div2.parentNode.insertBefore(subject,div2);
// div2の隣(後ろ)に移動
div2.parentNode.insertBefore(subject,div2.nextElementSibling);
parentNode
で親に移動してinsertBefore()
で移動させる必要があり。