jquery的clone方法bug的修复

简介: 测试发现,textarea和select的jquery的clone方法有问题,textarea和select的值clone的时候会丢掉,发现这个是jquery的一个bug,上不了的可以看下代码,比较简单。

测试发现,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);


相关文章
|
4天前
|
JavaScript 前端开发
jQuery - noConflict() 方法
jQuery - noConflict() 方法
25 9
|
1天前
|
JavaScript
jQuery Callback 方法
jQuery Callback 方法
9 3
|
4天前
|
XML JavaScript 前端开发
jQuery - AJAX get() 和 post() 方法
jQuery - AJAX get() 和 post() 方法
18 6
|
9天前
|
JavaScript 前端开发
jQuery - noConflict() 方法
jQuery - noConflict() 方法
16 6
|
7天前
|
JavaScript
jQuery 遍历 方法
jQuery 遍历 方法
17 3
|
17天前
|
JavaScript
jQuery Callback 方法
jQuery Callback 方法
25 15
|
8天前
|
JavaScript
jQuery 效果 方法
jQuery 效果 方法
12 4
|
8天前
|
JavaScript
jQuery 事件 方法
jQuery 事件 方法
21 3
|
9天前
|
缓存 JavaScript 前端开发
jQuery - AJAX get() 和 post() 方法
jQuery - AJAX get() 和 post() 方法
15 4
|
7天前
|
JSON 前端开发 JavaScript
jQuery AJAX 方法
jQuery AJAX 方法
14 1