firefox改html内容,Firefox中的jQuery html()(使用.innerHTML)忽略DOM更改

这篇博客探讨了在Firefox中直接通过DOM元素设置`value`属性与使用jQuery的`html()`插件自动更新之间的性能差异。文章指出,直接设置`value`属性对于文本框和按钮的值更新非常高效,而jQuery插件则为不同类型的输入元素(如文本区域、复选框、单选按钮和选项)提供了便利的一致性更新。同时,该插件也确保了`checked`和`selected`属性的正确同步。
摘要由CSDN通过智能技术生成

Firefox没有更新的value 属性基于用户输入DOM对象的,只是它的value 性能 -相当快,工作的周边存在。

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;

}

.formhtml()自动执行此操作的jQuery插件:

(function($) {

var oldHTML = $.fn.html;

$.fn.formhtml = function() {

if (arguments.length) return oldHTML.apply(this,arguments);

$("input,button", this).each(function() {

this.setAttribute('value',this.value);

});

$("textarea", this).each(function() {

// updated - thanks Raja & Dr. Fred!

$(this).text(this.value);

});

$("input:radio,input: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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值