在特定页面上关闭css表

时间:2013-05-21 00:59:43

标签: javascript jquery css

我是jquery的新手,我试图在特定页面加载时关闭特定的css表。这是我一直在使用的代码,我不确定它是否正确。

if(location.pathname=="/mycart") >= 0){

    $('link[rel=stylesheet][src~="/media/css/responsive.css"]').remove();

}

2 个答案:

答案 0 :(得分:1)

问题可能是路径名检查...而不是删除,尝试禁用样式表:

if (location.pathname.indexOf('/mycart') >= 0) {
    $('link[href*="/media/css/responsive.css"]').prop('disable', true);
}

修改:~= selector会查找空格分隔的字词,因此请改用*= selector

更新(完整代码)

<script>
$(function () {
  if (location.pathname.indexOf('/mycart') >= 0) {
    $('link[href*="/media/css/responsive.css"]').prop('disable', true);
  }
});
</script>

答案 1 :(得分:1)

而不是使用动态样式表“取消”使事情变得复杂,为什么不简单地创建一个围绕页面上更改的对象的包装类,并定义两组选择器,以便在包装器执行或不执行时应用有一个特定的班级。

让我们说这是您的HTML代码。

<div class="my_cart">
    <!-- Lots of shiny elements defined inside your cart... -->
</div>

现在您只需添加两套样式表,具体取决于您在不同情况下如何为购物车设计样式。

.my_cart input {
    ...
}

.my_cart p {
    ...
}
/* The following two selectors will be applied to .my_cart ONLY if it also has the .disabled class assigned to it. */
.my_cart.disabled input {
    ...
}

.my_cart.disabled p {
    ...
}

现在你所要做的就是跟随。

$(document).ready(function(){
    if(location.pathname == "/mycart"){
        $('.my_cart').addClass('.disabled');
    }
});

这很简单。