jquery的clone方法应用于textarea和select时,value值丢失

本文介绍了一个关于jQuery中clone方法的Bug,该Bug会导致textarea和select元素的值在克隆时丢失。提供了一段JavaScript代码来修复此问题,并确保在进行DOM元素克隆时能够保留这些元素的状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

textarea和select的值clone的时候会丢掉,在clone的时候将val再重新赋值一下就可以了.

测试发现,textarea和select的jquery的clone方法有问题,textarea和select的值clone的时候会丢掉,发现这个是jquery的一个bug,,比较简单。就是在clone的时候将val再重新赋值一下,如果知道这个了,就简单了。

引入到你要用的clone的页面就ok

jquery.fix.clone.js

(function (original) {
jQuery.fn.clone = function () {
var result = original.apply(this, arguments),
my_textareas = this.find('textarea').add(this.filter('textarea')),
result_textareas = result.find('textarea').add(result.filter('textarea')),
my_selects = this.find('select').add(this.filter('select')),
result_selects = result.find('select').add(result.filter('select'));
 
for (var i = 0, l = my_textareas.length; i < l; ++i) $(result_textareas[i]).val($(my_textareas[i]).val());
for (var i = 0, l = my_selects.length; i < l; ++i) result_selects[i].selectedIndex = my_selects[i].selectedIndex;
 
return result;
};
}) (jQuery.fn.clone);

转自: http://stackoverflow.com/questions/742810/clone-isnt-cloning-select-values
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值