求教jquery的问题

leiru 2009-08-03 03:57:20


$(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按钮是一个整体,怎么无论点那个复制按钮,都可以按照现有的内容来排序。
我写的好像还不怎么清楚,有问题再问好了。
谢谢了,分不够吸引人的还可以再加,只要问题解决,分好说。。
呵呵!
...全文
158 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
pillar0514 2009-08-12
  • 打赏
  • 举报
回复
链式语法表示起来比较简洁,但是容易造成语义混乱。
要想正确运用必须正确认知它返回的究竟是什么。
如果对链式语法不熟悉,不妨多定义几个变量来确切的标识你要操作的对象。
正确的代码比简洁的代码更有价值!


<!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>

wz_307 2009-08-12
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 leiru 的回复:]
还有一个问题,比如象我这样clone一行。
$(this).parent().parent().clone(true).appendTo($(this).parent().parent());
我想给clone的这一行赋一个id,怎么加啊??怎么找到复制的这一行?
[/Quote]

先var 一个变量接住这个jq对象, 然后用 $(elem).attr("id", "abc");来赋

顺带, 感觉此代码和jq使用的过于复杂.
leiru 2009-08-11
  • 打赏
  • 举报
回复
还有一个问题,比如象我这样clone一行。
$(this).parent().parent().clone(true).appendTo($(this).parent().parent());
我想给clone的这一行赋一个id,怎么加啊??怎么找到复制的这一行?
leiru 2009-08-05
  • 打赏
  • 举报
回复
自己再顶一下!
leiru 2009-08-04
  • 打赏
  • 举报
回复
深拷贝就比浅拷贝多拷贝了一个事件处理啊。。
我的拷贝品也要具有母体的拷贝功能啊。。
这个有什么问题吗??

我今天改了一下,成这样了。。
$(this).parent().parent().clone(true).appendTo($(this).parent().parent());
貌似是可以了。
licip 2009-08-04
  • 打赏
  • 举报
回复
$(this).parent().parent().clone(true)这是深拷贝呀.[Quote=引用 6 楼 formular1 的回复:]
注意看一下源代码,clone是浅拷贝还是深拷贝。
[/Quote]
gaf2009 2009-08-04
  • 打赏
  • 举报
回复
学习
Formular1 2009-08-04
  • 打赏
  • 举报
回复
注意看一下源代码,clone是浅拷贝还是深拷贝。
eugenepada 2009-08-04
  • 打赏
  • 举报
回复
$(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);

xiongzhijian 2009-08-04
  • 打赏
  • 举报
回复
d
zhanglzlkn 2009-08-04
  • 打赏
  • 举报
回复
看到,学习
leiru 2009-08-04
  • 打赏
  • 举报
回复
没人来解答一下吗?
mfylee 2009-08-03
  • 打赏
  • 举报
回复
学习

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧