删除CSS选择器的效果

时间:2014-05-07 04:44:22

标签: javascript jquery html css

我的要求有点棘手。我有一个标记如下:(只是一个例子,真正的标记非常复杂)

    <div class="classA">
        <div class="classB">
            <p class="classC">
                <span class="classD">
                </span>
            </p>
        </div>
    </div>

如上所示,有四个与标记关联的CSS类classA, classB, classC, classD。 我还使用jQuery使用这些选择器绑定事件。

我的要求:我希望jQuery事件绑定能够正常工作,同时,CSS不应该被应用,即我想从UI角度否定CSS样式的影响,但是功能透视jQuery事件处理程序应该仍然可以工作。

那么,是否可以覆盖CSS选择器,使其样式不会应用于我的标记元素?

以下示例:

div.classA div.classB p.classC span.classD{
    color:red;
}

我不希望字体颜色为红色,所以我尝试按如下方式覆盖选择器,但它不起作用:

div.classA div.classB p.classC span.classD{
    color:red;
}

div.classA div.classB p.classC span.classD{
   /*no styles here*/
}

请帮忙!!

5 个答案:

答案 0 :(得分:0)

然后从css中删除这些类。 jQuery仍然会工作。

不要求只有在css中使用的类必须在jquery中使用。

例如:

<div class="someUnknownClass"></div>

即使css中没有定义someUnknownClass,$('.someUnknownClass')仍然有用。

答案 1 :(得分:0)

我不知道任何允许按照你想要的方式去做的机制。 我建议的工作是将你的事件绑定在anoter css类上并做这样的事情:

$('.classD').addClass('eventClassD').removeClass('classD');
$('.eventClassD').on('myEvent', function(){...});

像这样你仍然会将事件绑定到你的元素,并将摆脱所有的CSS。

答案 2 :(得分:0)

为选择器使用另一个类名。因此,css为classA,选择器为classX

如果您不想应用这些样式。然后,您可以使用$('selctor').css();来覆盖样式。有点hacky! 要么。 添加一个超越css的类。或者删除包含css的类。 使用:$('selctor').addClass('no_styles');$('selctor').removeClass('current_styles');

答案 3 :(得分:0)

你想在不修改JS的情况下这样做吗?没有干净的方法可以做到这一点。但试试这个。

据推测,你会有一些区别于这一特殊元素的东西,以区别于其他元素,其中哪种风格&#39;你想保留。这种差异可能以不同的父容器的形式表现出来。只需复制影响这些类的CSS规则集,并在前父类CSS选择器前加上前类值。

答案 4 :(得分:0)

&#34;基本上,我不想触摸js代码,只有在css前面可以完成某些事情,我的要求才能实现。&#34;

如果这就是您所需要的,那么只需从页面中删除所有css定义。

$("link,style").remove()