在jquery中附加()附加到tr的右边?

时间:2011-08-12 12:55:29

标签: jquery

我有这个:

$(".TempAddLineItem").live('click', function() { 
        var $this = $(this);
        $(this).closest("tr").append("<tr><td>row creating</td></tr>");
        //$(this).append("<tr><td>row creating</td></tr>");
        $this.prev('.AddLineItem').click();
        return false;
    });

我遇到的问题似乎是附加到<td>而不是<tr>。 在我的asp.net gridview中,在追加之后它看起来像是添加一列而不是一行???

3 个答案:

答案 0 :(得分:2)

append()确实在元素中插入了内容。您正在寻找after()

$(this).closest("tr").after("<tr><td>row creating</td></tr>");

编辑:如果您想获得对新表格行的引用,可以反转逻辑并使用{​​{3}}:

$("<tr><td>row creating</td></tr>").hide()
                                   .insertAfter($(this).closest("tr"))
                                   .fadeIn("slow");

答案 1 :(得分:2)

您需要after,而不是append

  

。经过

     

描述:在匹配元素集中的每个元素之后插入由参数指定的内容。

     

.append

     

描述:将参数指定的内容插入到匹配元素集中每个元素的末尾。

答案 2 :(得分:1)

代码将其花费在tr标签上。做这样的事情就是结果:

<tr>
    <td>orig</td>
    <tr><td>row creating</td></tr>
</tr>

你必须使用after()