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

    技术2025-12-12  10

    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的抛出异常
    最新回复(0)