jquery フォームのコピーについて完全に忘却していたので一生忘れないためのメモ
html
<ul> <li>test1</li> <li>test2</li> </ul>
こんなhtmlがあって、1つ目のliをコピーしてulに追加したいとする。そこでまずコンソールにコピー元のhtmlを表示する。
console.log($("ul li:first"));
chromeのコンソールの結果
[li, prevObject: n.fn.init[1], context: document, selector: "ul li:first"]
何が何だかさっぱりわからん。なので↓のようにする。
console.log($("ul li:first").html());
chromeのコンソールの結果
test1
なんでliタグが含まれないんじゃ~~~~っとアホみたいに2時間くらいはまった。本当に死にたい。
結局html()を使ったのが間違いだったことに気が付く。html()を使うと「内部の要素を取得」する訳だから当たり前の話なのに2時間もはまって自分を本当にぶっ殺したくなる。
前の記事にも書いたけどコンソールで対象のhtmlを見たい場合は以下のようにする。
$(function(){ $.fn.log = function() { console.log.apply(console, this); return this; }; $("ul li:first").log(); });
chromeのコンソールの結果
<li>test1</li>
ここまで理解できれば後はコピーするだけ。
var html = $("ul li:first").clone(true).html(); $("ul").append(html);
追加後のhtml
<ul> <li>test1</li> <li>test2</li> test1 </ul>
なんでliがコピーされないんじゃ!!!ってこれで本当にアホみたいに2時間はまった。自分ぶっ殺したくてしょうがねえ。
正解は以下
$("ul li:first").clone(true).appendTo("ul");
追加後のhtml
<ul> <li>test1</li> <li>test2</li> <li>test1</li> </ul>
javascriptやっていると本当に自分を殺したくなってくる。もう2度と忘れないこと。
低予算で始められるおすすめのFX口座はこちら。
http://s2fx.com/ranking/856.html