代码之家  ›  专栏  ›  技术社区  ›  Bharat Patil

如何在当前<tr>

  •  27
  • Bharat Patil  · 技术社区  · 14 年前

    <table>
        <tr>
            <td><a href="#"></td>
        </tr>
    </table>
    

    当我点击 <a> 我想添加新的 <tr> 旁边 <tr> <a> 已单击。

    因此结果将是:

    <table>
        <tr>
            <td><a href="#"></td>
        </tr>
        <tr>
            <td><a href="#"></td>
        </tr>
    </table>
    
    3 回复  |  直到 7 年前
        1
  •  59
  •   jAndy    14 年前

    例子:

    $('a').bind('click', function(){
      $('<tr><td>new td</td></tr>').insertAfter($(this).closest('tr'));
    });
    

    $('a').live('click', function(){
      var $this     = $(this),
          $parentTR = $this.closest('tr');
    
      $parentTR.clone().insertAfter($parentTR);
    });
    

    链接示例: http://www.jsfiddle.net/7A6MQ/

    基本上,您可以从 tr element (包括子节点)并在该元素之后插入该副本。因此,您需要 .live 绑定以确保新创建的 a 元素也会调用那个click处理程序。

    .clone() , .insertAfter() , .live()

        2
  •  7
  •   Rock'n'muse    10 年前

    你还可以写:

    $('a').bind('click', function () {
        $(this).closest('tr').after('<tr><td>new td<td></tr>');
    });
    

    差别不大,但看起来更具可读性。

        3
  •  0
  •   Bhavin Solanki    9 年前

    这是密码。如果有任何问题,请检查并告诉我。

    function AddRaw(obj){
    var $this     = obj;
    $parentTR = $this.closest('tr');
    $parentTR.clone().insertAfter($parentTR);
    }