我是jquery的新手,我试图在特定页面加载时关闭特定的css表。这是我一直在使用的代码,我不确定它是否正确。
if(location.pathname=="/mycart") >= 0){
$('link[rel=stylesheet][src~="/media/css/responsive.css"]').remove();
}
答案 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');
}
});
这很简单。