2

操作後に生成される HTML。

<div class="comments_action_207">
   <div class="list_item_comments list_item_comments_207">
      <div class="comment_separator">text goes here</div>
   </div>
</div>

操作前の HTML

<div class="comments_action_207"></div>
<div class="list_item_comments list_item_comments_207"><div class="comment_separator">text goes here</div></div>

上記の操作を可能にするJavaScriptは

$(function() {
    $('.comments_action_207').click(function() {
        var num = this.className.split('_').pop();
        $('</div>',{'class':'list_item_comments list_item_comments_' + num})
            .append('<div class="comment_separator">text goes here</div>')
            .appendTo(this);
    });
});

上記の JavaScript をテストしたところ、正常に動作しました。しかし、私が理解していないのは、以下のように開始 divタグを渡す必要がない理由です。開始 div タグを渡すと、意図したとおりにコードが機能しません。

$('<div></div>',{'class':'list_item_comments list_item_comments_' + num}).

できれば一行一行説明していただけると分かりやすいかと思います。

ありがとう

4

2 に答える 2

5

<div>適切に閉じません:

$('<div><div/>'
            ^

jQuery は<div /><div>およびを受け入れます<div></div>が、他には何も受け入れません(つまり、HTML 属性はありません): http://api.jquery.com/jQuery/#jQuery2

于 2012-09-16T18:59:34.710 に答える
0

これを試してください...うまくいきます

$('<div></div>',{'class':'list_item_comments list_item_comments_' + num})
于 2012-09-16T19:17:37.643 に答える