IE8的不给力之一: 支持jquery.css()的怪癖

本文探讨了使用jQuery在不同浏览器环境下更新元素背景颜色时遇到的问题及解决方案。通过两种方法解决了因输入值导致的背景颜色设置失败问题,并推荐使用cssText属性来减少浏览器重绘次数,提高页面性能。
摘要由CSDN通过智能技术生成

jquery-1.4.2.js

$(".someClass").each(function(){
    var d = $(this).prev("input").val();
    $(this).css("background-color", d); //这里竟然报错
//    $(this).css("background-color", "#fff"); // 这里竟然是好的,ie只支持literal量;
});

解决方法1:用try catch

$(".someClass").each(function(){
    var d = $(this).prev("input").val();
try {
    $(this).css("background-color", d); //这里竟然报错
}
catch(e){
  //dont output any err msg, but it works;
}
});

解决方法2:用cssText

$(".someClass").each(function(){
    var d = $(this).prev("input").val();
    $(this).get(0).style.cssText+= "background-color: " + d; //用style.cssText
});

推荐第二种方法,

  • 减少browser重绘次数的更新样式方法一般采用cssText,出于优化目的,可以参考《high performance javascript》;
  • 不引发jquery的抛出异常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值