多浏览器情况下,动态添加html文本时会出现无法获取动态插入的内容,需要改动.html()方法。textarea无法通过id进行赋值,换用 其他方式。 同时,由于 动态添加文本时,FireFox 用innerText 在页面上看不到文本,故使用innerHTML 对textarea进行赋值
(function($) { var oldHTML = $.fn.html; $.fn.formhtml = function() { if (arguments.length) return oldHTML.apply(this,arguments); $("input", this).each(function() { this.setAttribute('value',this.value); }); $("textarea", this).each(function() { var id = this.id; document.getElementById(id).innerHTML=this.value; }); $(":radio,:checkbox", this).each(function() { if (this.checked) this.setAttribute('checked', 'checked'); else this.removeAttribute('checked'); }); $("option", this).each(function() { if (this.selected) this.setAttribute('selected', 'selected'); else this.removeAttribute('selected'); }); return oldHTML.apply(this); }; })(jQuery);