项目中遇到的一个问题,要点击

按钮,复制一个层的表单到其下面.

比如有个表单:
<div id="d1">

<div id="d2">

姓名:<input id="tn1" name="tn1" type="text" />

年龄:<input id="ta1" name="ta1" type="text" />

</div>

</div>

点击增加后,新增一个一样的表单.这时候就可以用Clone()来实现.
<script type="text/javascript">

function cloneDiv(){

var clone = $("#d2").clone();

var father = $("#d1");

$(clone).appendTo(father);

}

</script>

但是这时候就有个问题,clone增加之后的元素,id,name等属性跟被复制的元素都是一样的.这时候如果用request.form取值的话,这样后台取值就会出问题.

所以这个时候就可以用attr()去修改clone的id,name等参数.
var child = father[0].childElementCount+1;

//更改div的ID属性

var did = $(clone).attr("id",function(){

var di = this.id;

di = di.replace("2",child+1);

return di;

});

$(clone).attr("id",did.id);

$(clone).find("input").each(function(){

//这里更改input:text的id,name等属性

var tid = $(this).attr("id",function(){

var id = this.id

id = id.replace("1",child);

return id;

});

$(this).attr("id",tid.id);

var tna = $(this).attr("name",function(){

var na = this.name;

na = na.replace("1",child);

return na;

});

$(this).attr("name",tna.name);

});

这样id和name就会随着增加而改变.


点击 :1018