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 回答