0

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

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

1 回答 1

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();
}
于 2013-09-13T18:29:39.810 回答