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的抛出异常
本文探讨了使用jQuery在不同浏览器环境下更新元素背景颜色时遇到的问题及解决方案。通过两种方法解决了因输入值导致的背景颜色设置失败问题,并推荐使用cssText属性来减少浏览器重绘次数,提高页面性能。

被折叠的 条评论
为什么被折叠?



