//待克隆的div
<div class="serviceList-sel-body">
<div id="serviceId0" name="divName" >
<select id="service_select_id" name="serviceId" class="serviceSelect" style="width: 100px;"> </select>
<input id="serviceRateId" name="serviceRate" class="serviceRate" onblur="javascript:checkServiceRate(this);"name=""maxlength="5" style="width: 60px;"/>%
<input id="divideRateId" name="divideRate" class="divideRate" onblur="javascript:checkDivideRate(this);" name="" maxlength="5" style="width: 60px;"/>%
<a href="#" id="delA" onclick="return false;" title="删除" class="delRow_Link" ></a>
</div>
js代码
//动态添加行
function addRow(service_id,service_rate,divide_rate,flag){
var idNum;//计数标识
var row1;
row1=$("#serviceId"+(idNum-1));//获得第一行 -----修改(显示) -- 设置jquery对象(待克隆的div)
//如果row1为空
if(row1.length==0){
idNum=1;
row1=$("#serviceId"+(idNum-1));
}
var newRow=row1.clone(true);//创建第一行的一个副本
// newRow.insertBefore(row1);//在第一行前插入
newRow.insertAfter(row1);//在第一行后插入
var rndID="serviceId"+idNum;
newRow.attr("id",rndID);//设置行ID 每次都不一样
//给各个 select input 加上不同的id
newRow.find("a").attr("id",rndID);
newRow.find("select.serviceSelect").attr("id","serviceSelect"+rndID);
newRow.find("input.serviceRate").attr("id","serviceRate"+rndID);
newRow.find("input.divideRate").attr("id","divideRate"+rndID);
//初始值为空
$("#serviceRate"+rndID).val("");
$("#divideRate"+rndID).val("");
//绑定事件
newRow.find("input.divideRate").blur(function(){
checkDivideRate(this);
});
newRow.find("input.serviceRate").blur(function(){
checkServiceRate(this);
});
//给新增的每一行内的删除加上删除事件
newRow.find("a").click(function(){
delRow(this);
});
// 新加行显示删除按键
newRow.find("a").html(" <span style='color: blue;'>删除</span>");
//修改时候用到
if(flag==2){
newRow.find("select.serviceSelect").val(service_id);
newRow.find("input.serviceRate").val(service_rate);
newRow.find("input.divideRate").val(divide_rate);
}
//查看时候用到
if(flag==3){
//alert(service_id+" | "+service_rate+" | "+divide_rate);
newRow.find("select.serviceSelect_view").val(service_id);
newRow.find("input.serviceRate_view").val(service_rate);
newRow.find("input.divideRate_view").val(divide_rate);
}
//显示克隆出的新行数据
newRow.show();
idNum++;//克隆一次加一次
}
//动态删除行
function delRow(who) {
$("#" + who.id).remove();
}
分享到:
相关推荐
JQuery Clone 模板来实现商品信息的展示,展现形式可以通过修改模板中的td来确定每一行显示多少个商品信息商品信息使用JSON数据来模拟 同一个产品点击多次,不会重复添加,而是在已有的基础上数量+1, 商品数量...
本文实例讲述了jQuery实现html table行Tr的复制、删除、计算功能。分享给大家供大家参考,具体如下: 添加行: function addtr(){ var tr = $(#tb tr).eq(0).clone(); tr.appendTo(#tb); //tr.insertBefore(#tb ...
当我们在教程中演示 jQuery 时,会将函数直接添加到 <head> 部分中。不过,把它们放到一个单独的文件中会更好,就像这样(通过 src 属性来引用文件): 实例 <script type="text/javascript" src="jquery.js"> ...
02 jquery循环方法和attr,prop方法 03 jquery模态对话框与clone的应用 04 jqueryCSS操作之offsets,position以及scrolltop 05 jquery事件绑定与事件委托 06 jquery动画效果 07 jquery扩展与插件 08 jquery扩展补充 09...
35、写clone()方法时,通常都有一行代码,是什么? 11 36、GC 是什么? 为什么要有GC? 11 37、垃圾回收的优点和原理。并考虑2 种回收机制。 11 38、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有...
35、写clone()方法时,通常都有一行代码,是什么? 11 36、GC 是什么? 为什么要有GC? 11 37、垃圾回收的优点和原理。并考虑2 种回收机制。 11 38、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有...
实际上可扩展性还是很高的,当前存储数据用的文件之后可以替换MongoDB或者Mysql,还可以添加删除,查找功能,这可以做一个论坛或者商城的评论组件。效果图技术栈node.js + express + ejs + jquery运行方式# clone...
├─(28) 02 python s3 day44 jquery循环方法和attr,prop方法.avi ├─(29) 03 python s3 day44 jquery模态对话框与clone的应用.avi ├─(30) 04 python s3 day44 jqueryCSS操作之offsets,position以及scrolltop.avi...
11、定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。12、代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。13、服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。14、在线...
11、定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。 12、代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。 13、服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。 14、...