物覚えの悪いプログラマの備忘録

このブログには私が試してみたことを記載していっております。忘れたときのために備忘録として利用しているだけですので、間違ったことを書いているかもしれません。 みなさまの役に立つ情報があれば幸いです。

要素をコピーしてから表示

<div class="alert alert-success" id="err">
<span id="err_coment"></span>
        <button type="button" data-dismiss="alert" class="close" data-ajax="false">
            <span>×</span>
        </button>
    </div>

クリックした場合
javascript

//on click
$("#err").clone(true).insertAfter("#err");

結果

<div class="alert alert-success" id="err">
<span id="err_coment"></span>
        <button type="button" data-dismiss="alert" class="close" data-ajax="false">
            <span>×</span>
        </button>
    </div>
<div class="alert alert-success" id="err">
<span id="err_coment"></span>
        <button type="button" data-dismiss="alert" class="close" data-ajax="false">
            <span>×</span>
        </button>
    </div>


※追記:上記場合on clickするたびに追加されてしまうのでアラート表示機能としては不十分なので

$("#err").clone(true).attr('class','alert alert-success copy').insertAfter("#err");

解説

$("#err").clone(true). //#errをコピー
attr('class','alert alert-success copy'). //コピーした要素に新しいclass追加して変更
insertAfter("#err"); //コピー元の後に追加


例えば使い方は

$('#btn').on('click',function(){
//毎回クリックするたびにコピーしたものを削除する
$(".copy").remove();
//新しくコピーを作る
$("#err").clone(true).attr('class','alert alert-success copy').insertAfter("#err");

//コピーした要素にテキスト追加
$(".copy").html('追加した要素に書き込む');
//コピーした要素を表示
$(".copy").show();