IE8下的效果:
IE11下的效果(不开兼容性)
查了半天的谷歌终于找到了一个办法.
1.先引入jquery.
2.添加代码
(function($) { var oldHTML = $.fn.html; $.fn.formhtml =function() { if (arguments.length) return oldHTML.apply(this,arguments); $("input,textarea,button", this).each(function() { this.setAttribute('value',this.value); }); $(":radio,:checkbox", this).each(function() { if (this.checked) this.setAttribute('checked', 'checked'); elsethis.removeAttribute('checked'); }); $("option", this).each(function() { if (this.selected) this.setAttribute('selected', 'selected'); elsethis.removeAttribute('selected'); }); return oldHTML.apply(this); }; })(jQuery); function getHTML(obj){ return $(obj).formhtml(); } function tr_click(obj){ var _html0 = getHTML(obj); alert(_html0); }
总结:页面中输入的那个value,对DOM元素来说是个property,是不属于innerHTML里的IE8以下版本会出现,是因为IE不分attribute和property,这是IE的BUG,在IE9的时候终于得以修复而这个formHtml这个函数,强行给input元素加了一个叫value的attribute,从概念上说和dom的值value是不一样的,概念不同,不管怎么样,问题能解决就ok,不管是神马猫,能抓老鼠的猫就好好猫!
感谢 http://www.cnblogs.com/zhaozi/archive/2012/03/24/2415290.html