Jquery长度不适用于IE8

时间:2013-09-13 18:14:56

标签: jquery

为什么我做错了? 它没有加载amin.css,甚至没有删除adminNotes.css

if(($(".AdminNoteContainer").length <= 0)){
         $("head").append($('<link rel="stylesheet" href="css/main.css" />'));
         $('head *[href*="css/adminNotes.css"]').remove();
    };

1 个答案:

答案 0 :(得分:3)

问题不在于.length(虽然我不知道你为什么<= 0,但你可以只做=== 0甚至更好if(!$(".AdminNoteContainer").length)),这是你如何附加CSS。

IE 8(我认为甚至是9)不允许您在呈现页面后附加<link>标记。您需要使用IE特定方法来添加CSS。 document.createStyleSheet

我想制作一个getStyleSheet方法来检查附加CSS的正确方法。这将使用document.createStyleSheet,如果它在那里,如果不是,它将附加<link>标记。

$.getStyleSheet = function(url){
    if(document.createStyleSheet){
        document.createStyleSheet(url);
    }
    else{
        $('<link />', {
            type: 'text/css',
            rel: 'stylesheet',
            href: url
        }).appendTo('head');
    }
};

然后你就可以做到:

if(!$(".AdminNoteContainer").length){
    $.getStyleSheet('css/main.css');
    $('head *[href*="css/adminNotes.css"]').remove();
}