.append jQuery函数

时间:2012-09-16 18:55:04

标签: javascript javascript-events jquery

操作后应生成的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}).

如果可以,请逐行解释,这样我就更容易理解了。

由于

2 个答案:

答案 0 :(得分:5)

您的<div>未正确关闭:

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

jQuery接受<div /><div><div></div>,但没有别的(即没有HTML属性):http://api.jquery.com/jQuery/#jQuery2

答案 1 :(得分:0)

请尝试这个......它会起作用

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