用Jquery从div中删除完整的css

时间:2010-07-18 07:11:47

标签: javascript jquery css

在我的CSS中我有

    * {
 font-family: "Meiryo UI" , Verdana;
 font-size:13px;
 }
input, select, textarea {
 font-size: 12px;
 border-color: #333;
 color: #333;
 border-style: solid;
 border-width: 1px;
}

但是,我想要一个没有CSS的DIV。 我试过了

$('#preview').removeClass()
$('#preview').removeAttr("style")
$('#preview').children().removeAttr/Class

但......但没有结果。 帮我用Jquery或只是一些javascript从这个div中删除所有样式。

他来自样式表。 这是我的问题的预览图片:https://emailinvest.com/preview.jpg我想要的是什么。

3 个答案:

答案 0 :(得分:3)

CSS中的继承通常比没有帮助更有帮助,因此可以采用另一种方式:

a)覆盖您指定的样式

#preview .input, #preview select, #preview textarea { }

b)使用带前缀的选择器使您指定的样式定位到不同的区域,例如

#selector * { font: 13px "Meiryo UI", Verdana; }
#selector input, #selector select, #selector textarea { }

答案 1 :(得分:0)

如果要使用removeClass,则必须指定要删除的类或不起作用:

$('#preview input').removeClass('classToRemove')

$('#preview button').removeClass('classToRemove')

您可以查看Firebug为该按钮指定的类,并尝试将其删除。

或者您可以直接将样式设置为:

$('#preview button').css('background','#ccc');

或者这个..但我不确定它是否有效:

$('#preview').children().removeAttr('class'); // or 'style'

答案 2 :(得分:0)

您的样式表未指定类或特定元素(ID),因此样式将应用于按标记匹配的所有元素。

具体来说,您的按钮是通过样​​式表中指定的“input”元素样式设置的。

这意味着您没有任何可以轻松删除的课程来重置样式。

特别是按照浏览器友好的方式,按钮特别难以设置为不同的原始样式。

你有几个选择,其中只有一个是明智的:

  1. 正如meder上面提到的那样不要首先设置这个div的样式。这是最好的选择。您可以通过为其他div设置显式类名或id并在样式表中列出它们,或者为要忽略的div添加一个类,并使用“not”选择器,例如input:not(.myUnstyledButtonClass)(这只适用于现代浏览器)
  2. 在IFrame中手动构建DIV,使其不受主文档样式的影响。这似乎有点矫枉过正
  3. 我没有测试过这个,但是你可以尝试创建一个iFrame,渲染一个按钮(这将是非样式的形式),然后迭代并递归并复制所有属性和样式你的div中的按钮没有样式的按钮。这样做的可能性很小。我甚至不打算尝试它....
  4. 1加1 - meder建议的内容。当您向他评论“我试过......没有结果”时,可能值得发布您尝试使用的代码。你可能只是误解了他的建议或忽视了某些事情。

    有关示例,请参阅: http://jsbin.com/ikobe4

    要使用“:not()”,您需要在按钮上添加unstyled(或您选择的任何内容),例如:

    <input type="button" class="unstyled" value="Button Text" />
    

    更改css文件中的选择器
    input, select, textarea {
    

    input:not(.unstyled), select, textarea {
    

    ...但如上所述,这不适用于所有浏览器,所以最好的办法是将类添加到所有其他div,并明确指定要应用样式的div,而不是指定哪个不要想要将样式应用到