通过jquery的clone方法实现动态添加input并删除input

[b]
使用jQuery的clone()方法可以实现动态添加一个或一组元素,很方便,但是需要注意一个问题是:clone(true)表示可以复制事件和元素,clone(false)表示只复制元素,不复制事件。之前我在网上搜到好多关于动态添加和删除元素的相关文章,都不能解决我目前的需求,而且删除还不好使(原因是clone(true)后,把click里面的方法都复制了一份)。今天我自己解决了这个问题,mark一下,以备后用。
[/b]
HTML:

<div class="widget-body">
<div class="widget-main">
<div class="form-group">
<label class="col-sm-3 control-label no-padding-right"> </label>
<div class="col-sm-9">
<span class="input-icon">
<select id="switch_t_language" name="tl">
<option value="en">English</option>
<option value="zh-CN">Chinese(Simplified)</option>
<option value="zh-TW">Chinese(Traditional)</option>
<option value="ja">Japanese</option>
<option value="ko">Korean</option>
</select>
</span>
<span class="input-icon">
<i class="icon-comment green"></i>
<input type="text" id="message" name="message" style="width:500px;" placeholder="Send Messages...">
</span>
<a href="javascript:;" class="btn btn-link dictpush-plus" >
<i class="fa fa-plus green"></i>
</a>
<span id="message_span"></span>
</div>
</div>

</div>
</div>


JS:

$(function(){
//add row
$(".dictpush-plus").click(function(){
if($(this).hasClass("dictpush-plus")){//这个是添加一组元素的
$(this).parents(".form-group").clone(true).appendTo($(".widget-main"));
$(this).children().removeClass("fa-plus").removeClass("green").addClass("fa-minus").addClass("red");
$(this).removeClass("dictpush-plus").addClass("dictpush-minus");
}else if($(this).hasClass("dictpush-minus")){//这个判断是为了删除元素用的,不能用bind或者click的方法,试了都不行
$(this).parents(".form-group").remove();
}
});
});


最后效果如下图:
[img]http://dl2.iteye.com/upload/attachment/0118/7985/08d08c0a-1950-303d-a2c3-eb26122cefe6.png[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值