0

私が現在使用しているコードは、「.comment_post」div のクローンを作成し、コメントの下にフォームを挿入するだけです。

(可能であれば)やりたいことは、「.comment_post」divを複製するのではなく、新しい場所に「移動」することです。

これを行う方法について何か提案はありますか?

HTML

<div class="comment-post">
<form id="addCommentForm" method="post" action="">
<div class="avatar"><img src="http://www.gravatar.com/avatar/ee61e6c16/?s=36&r=g&d=mm" /></div>
<textarea name="txt" id="txt" class="txtcomment"></textarea><button class="btnComment" type="button">Send</button>
</form></div>

<div class="comment">
<span class="avatar"><img src="http://www.gravatar.com/avatar/ee61e6c16/?s=36&r=g&d=mm"></span>
<span class="poster">Jake</a></span><span class="time">5 months ago</span>
<div class="text">just a test comment ...</div>
<div class="reply"><a href="#" onclick="reply(174);">Reply</a></div><div id="new-174"></div>
</div>

<div class="comment">
<span class="avatar"><img src="http://www.gravatar.com/avatar/ee61e6c16/?s=36&r=g&d=mm"></span>
<span class="poster">Jake</a></span><span class="time">5 months ago</span>
<div class="text">another comment ...</div>
<div class="reply"><a href="#" onclick="reply(175);">Reply</a></div><div id="new-175"></div>
</div>

JS

reply = function(id){
    if(!$('#new-'+id+' .comment-post').length) {
        $('.comment-post:first').clone().attr('id', id).appendTo($('#new-'+id));
        $('#new-'+id+' .txtcomment').focus();
        $('#new-'+id+' .txtcomment').autosize();
        $('#new-'+id+' .txtcomment').bind('keydown', charcounter);
        $('#new-'+id+' .txtcomment').bind('keyup', charcounter);
    }
    else
    {
        $('#new-'+id+' .comment-post').remove();
    }          
}
4

4 に答える 4

5

省略して.clone()ください:

$('.comment-post:first').attr('id', id).appendTo($('#new-'+id));

.appendTo()またはを使用.append()して要素を単一のターゲットに追加すると、コピーではなく移動されます。(その部分も省略するかどうかはあなた次第です.attr()。)

.appendTo()また、新しい jQuery オブジェクトを作成して渡すのではなく、セレクター文字列だけを指定することもできます。

$('.comment-post:first').attr('id', id).appendTo('#new-'+id);
于 2013-06-16T06:17:15.373 に答える
3

js コードから clone() を削除してください。

$('.comment-post:first').attr('id', id).appendTo($('#new-'+id));
于 2013-06-16T06:17:33.293 に答える
1

ここで動作するデモhttp://jsfiddle.net/yeyene/WTuRY/1/

.html()DIV 内の html コンテンツ全体を取得するために使用できます。

Jクエリ

$(document).ready(function(){
    $('a#move').on('click', function(){
        $('#newDIV').html($('.comment-post').html());
        $('.comment-post').remove();     
    });   
});
于 2013-06-16T06:19:11.433 に答える