$(document).ready(function(){
     $("#addOne").click(function(){
        $(this).parent().parent().clone(true).appendTo($(".foo")[$(".foo").length-1]);
             });
      
      $("#addTwo").click(function(){
        $(this).parent().parent().clone(true).appendTo($(".foo2")[$(".foo2").length-1]);
              });
   });<form name="fm" action="" method="post" enctype="multipart/form-data">
               <table width="100%">
                    <% 
                        Iterator it = collection.iterator();
                        int i=1;
                           while(it.hasNext()){
                              Cc_action_prologueDto firstFloor=(Cc_action_prologueDto)it.next();
                              
                   %>
<tr class="foo"> 
      <td width="5%" height="100%" valign="middle"> 
           <%if(i<4){%>
           <%=i %>
           <%} %>
          </td>
  <td width="5%" height="100%" valign="middle"> 
            描述
          </td>
          <td width="30%" height="100%" valign="middle"> 
         <input type="text" style="width:80%" name="giftName" id="giftName"    value="<%=firstFloor.getNodename() %>" maxlength="50">
          </td>
          <%if(i>2){%>
          <td>
<input type="button" class="button" value="条件" onClick="save()"/>
 </td>
  <%} %>
</tr>
<% 
                        Iterator it2 = firstFloor.getCollecion().iterator();
                        int j=1;
                           while(it2.hasNext()){
                              Cc_action_prologueDto sedFloor=(Cc_action_prologueDto)it2.next();          
                   %>
                   
                   <!-- 
<tr id="sed" class="foo2">
      <td width="5%" height="100%" valign="middle">
           
          </td>
  <td width="5%" height="100%" valign="middle"> 
       <%if(j==1) {%>
             选项
           <%} %>
          </td>
          <td width="30%" height="100%" valign="middle"> 
             <%=j %>
         <input type="text" style="width:40%" name="giftName" id="giftName"   value="<%=sedFloor.getNodename() %>" maxlength="8">
         <input type="text" style="width:40%" name="giftName" id="giftName"   value="<%=sedFloor.getNodevalue() %>" maxlength="8">
          </td>  
      <%if(j==1) {%>
          <td colspan="8"><input type="button" id="addOne" value="+"/></td>
          <%}else{%>
          <td width="30%" height="100%" valign="middle"> 
         <input type="text" style="width:40%" name="giftName" id="giftName"   value="<%=sedFloor.getResultid() %>" maxlength="8">
        <input type="button" id="adddelete" onclick="adddelete()" id="delete"  value="-"><input type="button" id="addTwo" onclick="addRow()"   value="+"/>
      </td>
          <%}%>
</tr>
 <%} %>

<%
   j++;
   } 
%>
<%
  i++;
  } 
%>
</table>上面clone的时候遇到一些问题。
0:现在点第一个复制按钮的时候,点最后一个复制按钮可以复制成功,要是点前面的复制按钮需要点2下才可以,不知道为什么?另外第二个复制按钮点最后一个可以成功,点已经复制的按钮就不成功了。
有知道我那里写错的大虾说一声啊。。
1:第一个复制按钮,我不想显示“选项”字样。同时复制的时候前面的序号怎么自增。
2: 这个列表的两个clone按钮是一个整体,怎么无论点那个复制按钮,都可以按照现有的内容来排序。
我写的好像还不怎么清楚,有问题再问好了。
谢谢了,分不够吸引人的还可以再加,只要问题解决,分好说。。
呵呵!

解决方案 »

  1.   

    $(this).parent().parent().clone(true).appendTo($(".foo")[$(".foo").length-1]);
    你干吗tr里面嵌套tr?!  不明白
    你可以先把这个tr复制在table中,然后再移动至最后一个class为foo的tr后面
      var clone = $(this).parent().parent().clone(true);   
      clone.appendTo($("table"));
      $($(".foo")[$(".foo").length-1]).after(clone);
      

  2.   

    注意看一下源代码,clone是浅拷贝还是深拷贝。
      

  3.   

    $(this).parent().parent().clone(true)这是深拷贝呀.
      

  4.   

    深拷贝就比浅拷贝多拷贝了一个事件处理啊。。
    我的拷贝品也要具有母体的拷贝功能啊。。
    这个有什么问题吗??我今天改了一下,成这样了。。
    $(this).parent().parent().clone(true).appendTo($(this).parent().parent());
    貌似是可以了。
      

  5.   

    还有一个问题,比如象我这样clone一行。
    $(this).parent().parent().clone(true).appendTo($(this).parent().parent()); 
    我想给clone的这一行赋一个id,怎么加啊??怎么找到复制的这一行?
      

  6.   

    链式语法表示起来比较简洁,但是容易造成语义混乱。
    要想正确运用必须正确认知它返回的究竟是什么。
    如果对链式语法不熟悉,不妨多定义几个变量来确切的标识你要操作的对象。
    正确的代码比简洁的代码更有价值!
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
    $("#inner1").click(function(){
    $(this).parent().parent().clone(true).appendTo($(this).parent().parent());
    });
    $("#inner2").click(function(){
    $(this).parent().parent().clone(true).attr("id","parent3").appendTo($(this).parent().parent());
    alert($("#parent3").html());
    });
    });
    </script>
    <style>
    .parent1{
    border:#000000 1px solid;
    margin:10px;
    }
    .parent2{
    border:#0000FF 1px solid;
    margin:10px;
    }
    .inner1{
    border:#990000 1px solid;
    margin:10px;
    }
    #parent3{
    background:#99CCFF;
    }
    </style>
    </head>
    <div id="parent1" class="parent1">
    <div id="parent2" class="parent2">
         <div id="inner1" class="inner1">
             inner1
    </div>   
         <div id="inner2" class="inner1">
             inner2
    </div>   
        </div>
    </div>
    <body>
    </body>
    </html>
      

  7.   


    先var 一个变量接住这个jq对象, 然后用 $(elem).attr("id", "abc");来赋顺带, 感觉此代码和jq使用的过于复杂.