質問失礼します。
現在appendToで要素を別の子要素に移動させるものを作っています。
移動させた際、移動させた要素のidとdataを書き換えています。
任意の場所に移動させることはできたのですが、2回目以降が動きません。
下記がソースです。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>sample</title> <style> td { width: 50px; height: 50px; border: 1px solid black; } .moveMeIntoMain { width: 100%; height: 100%; background: pink; } </style> </head> <body> <table> <tr> <td id="head1-1"> <div id="moveMeIntoMain1-1" class="moveMeIntoMain" data-num="1-1">要素</div> </td> <?php for($i = 2; $i <= 10; $i++){ echo '<td id="head1-'.$i.'"></td>'; } ?> </tr> </table> </body> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <script> $(".moveMeIntoMain").on('click', function(){ var $this = $(this); var idnum = $this.data('num'); var ID = idnum.slice(0, -2); var num = idnum.slice(-1); var newNum = Number(num) + 1; var newID = ID + '-' + newNum; var content = document.getElementById('moveMeIntoMain' + idnum); $this.appendTo($("#head" + newID)); content.id = 'moveMeIntoMain1-' + newNum; content.dataset.num = '1-' + newNum; }); </script> </html>
表示されるエラーは
Uncaught TypeError: Cannot set property 'id' of null
ディベロッパーツールで見た限り指定したtdの子要素にできており、
id、data共に書き換わっているのですがあくまで見た目?だけが変わっているだけで
DOMツリー?が変わっていない為、上記エラーが出て思い通りに動かないのかな?と思っております。
解決方法や参考ページ等ございましたらご教授いただけますと幸いです。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー