目的:改写Jquery中的.Html()方法为新的.formhtml()
功能:将修改的html也复制(原来的.html()只是复制页面中显示的html,不能获取修改以后的html)
(function ($) { var oldHTML = $.fn.html; $.fn.formhtml = function () { if (arguments.length) return oldHTML.apply(this, arguments); $(this).each(function () { if (this.type == "input" || this.type == "textarea" || this.type == "button") { this.setAttribute('value', this.value); } else if (this.type == "radio" || this.type == "checkbox") { if (this.checked) this.setAttribute('checked', 'checked'); else this.removeAttribute('checked'); } else if (this.type == "option") { if (this.selected) this.setAttribute('selected', 'selected'); else this.removeAttribute('selected'); } $("input,button", this).each(function () { this.setAttribute('value', this.value); }); $("textarea", this).each(function () { $(this).html(this.value); }); $(":radio,:checkbox", this).each(function () { // im not really even sure you need to do this for "checked" // but what the heck, better safe than sorry if (this.checked) this.setAttribute('checked', 'checked'); else this.removeAttribute('checked'); }); $("option", this).each(function () { // also not sure, but, better safe... if (this.selected) this.setAttribute('selected', 'selected'); else this.removeAttribute('selected'); }); }); return oldHTML.apply(this); }; })(jQuery);