您的位置:首页 > Web前端 > JQuery

jQuery html() in Firefox (uses .innerHTML) ignores DOM changes

2010-03-05 00:00 651 查看
DOM:
function DisplayTextBoxValue(){ 
var element = document.getElementById('textbox'); 
// set the attribute on the DOM Element by hand - will update the innerHTML 
element.setAttribute('value', element.value); 
alert(document.getElementById("container").innerHTML); 
return false; 
}

jQuery plugin that makes .formhtml() automatically do this:
(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() { 
// 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); 
}; 
//optional to override real .html() if you want 
// $.fn.html = $.fn.formhtml; 
})(jQuery);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: