从<head> jQuery中的<style>中删除单个样式

时间:2018-03-23 05:49:47

标签: javascript jquery styles

我想删除单个样式,例如:

&#xA;&#xA;
  img {width:calc(100% -  10px)}&#xA;  
&#xA;&#xA;

来自我的&lt; style&gt; ,它由&lt; head&gt; 内的插件动态插入。我尝试了很多方法,但没有任何帮助。

&#xA;&#xA;
  ThElement.find('style')。remove();&#xA;  
&#xA;&#xA;

通过使用上面的代码,我可以一起删除所有&lt; style&gt; ,但我需要删除唯一的单一样式。那么有没有办法做到这一点。

&#xA;&#xA;

我不想添加新款式,我只是想删除现有的

&#xA;&#xA;

以下是您的小提琴:

&#xA;&#xA;

&#xD;&#xA;
&#xD;&#xA;
 &lt;!DOCTYPE html&gt;&#xD;&#xA;&lt; html lang =“en”&gt;&#xD;&#xA; &#的xD;&#XA;&LT; HEAD&GT;&#的xD;&#XA; &lt; meta charset =“UTF-8”&gt;&#xD;&#xA; &lt; meta name =“viewport”content =“width = device-width,initial-scale = 1.0”&gt;&#xD;&#xA; &lt; meta http-equiv =“X-UA-Compatible”content =“ie = edge”&gt;&#xD;&#xA; &LT;标题&GT;文件&LT; /标题&GT;&#的xD;&#XA; &LT;风格&GT;&#的xD;&#XA; html {&#xD;&#xA;保证金:0px;&#xD;&#xA; height:auto;&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA;身体{&#xD;&#xA; height:auto;&#xD;&#xA;填充:10px;&#xD;&#xA;背景:透明;&#xD;&#xA;颜色:#000000;&#xD;&#xA;位置:相对;&#xD;&#xA; z-index:2;&#xD;&#xA; -webkit-user-select:auto;&#xD;&#xA;保证金:0px;&#xD;&#xA;溢出:隐藏;&#xD;&#xA;最小高度:20px;&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA;身体:{&#xD;&#xA;内容:“”;&#xD;&#xA; display:block;&#xD;&#xA;明确:两者;&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA; body ::  -  moz-selection {&#xD;&#xA;背景:#b5d6fd;&#xD;&#xA;颜色:#000;&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA; body :: selection {&#xD;&#xA;背景:#b5d6fd;&#xD;&#xA;颜色:#000;&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA;体,&#的xD;&#XA; textarea {&#xD;&#xA; min-height:500px!important;&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA;体,&#的xD;&#XA; body:focus {&#xD;&#xA; outline:透明实体0px;&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA;身体{&#xD;&#xA;背景:透明;&#xD;&#xA;位置:相对;&#xD;&#xA; z-index:2;&#xD;&#xA; overflow-x:auto;&#xD;&#xA; user-select:auto;&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA;身体a {&#xD;&#xA; user-select:auto;&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA; body table td,&#xD;&#xA;身体表{&#xD;&#xA; border:1px solid rgb(221,221,221);&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA; body table td:empty,&#xD;&#xA; body table th:empty {&#xD;&#xA;身高:20px;&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA; body table td,&#xD;&#xA;身体表{&#xD;&#xA; border:1px double red;&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA; body table td,&#xD;&#xA;身体表{&#xD;&#xA; border-width:2px;&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA;身体表{&#xD;&#xA;背景:rgb(230,230,230);&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA;身体hr {&#xD;&#xA;明确:两者;&#xD;&#xA; user-select:none;&#xD;&#xA; break-after:page;&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA;身体img {&#xD;&#xA; display:inline-block;&#xD;&#xA; float:none;&#xD;&#xA; vertical-align:bottom;&#xD;&#xA; margin-left:5px;&#xD;&#xA; margin-right:5px;&#xD;&#xA; max-width:calc(100% -  10px);&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA;身体{&#xD;&#xA;位置:相对;&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA; body :: after {&#xD;&#xA;位置:相对;&#xD;&#xA; font-weight:normal;&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA;身体前{&#xD;&#xA;白色空间:预包装;&#xD;&#xA;自动换行:break-word;&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA; body blockquote {&#xD;&#xA; border-left:2px solid rgb(94,53,177);&#xD;&#xA; margin-left:0px;&#xD;&#xA; padding-left:5px;&#xD;&#xA;颜色:rgb(94,53,177);&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA; body blockquote blockquote {&#xD;&#xA; border-color:rgb(0,188,212);&#xD;&#xA;颜色:rgb(0,188,212);&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA; body blockquote blockquote blockquote {&#xD;&#xA; border-color:rgb(67,160,71);&#xD;&#xA;颜色:rgb(67,160,71);&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA;身体跨度{&#xD;&#xA; font-weight:normal;&#xD;&#xA; display:inline;&#xD;&#xA; line-height:0;&#xD;&#xA; }&#的xD;&#XA; &#的xD;&#XA;身体跨度{&#xD;&#xA; font-size:inherit;&#xD;&#xA;身高:1em;&#xD;&#xA; width:1em;&#xD;&#xA;最小高度:20px;&#xD;&#xA;最小宽度:20px;&#xD;&#xA; display:inline-block;&#xD;&#xA;保证金:-0.2em 0.15em 0.2em;&#xD;&#xA; line-height:normal;&#xD;&#xA; vertical-align:middle;&#xD;&#xA; }&#的xD;&#XA; &LT; /风格&GT;&#的xD;&#XA;&LT; /头&GT;&#的xD;&#XA;&#的xD;&#XA;&LT;主体&GT;&#的xD;&#XA; &lt; img src =“http://lorempixel.com/400/600/”&gt;&#xD;&#xA;&lt; / body&gt;&#xD;&#xA;&#xD;&#xA; &LT; / HTML&GT;  
&#的xD;&#XA;
&#的xD;&#XA;
&#的xD;&#XA;

& #xA;&#xA;

我只想从中删除 body img 样式。

&#xA;

2 个答案:

答案 0 :(得分:1)

看起来有点时髦,但您可以使用String.replace() Regular Expression删除特定规则。

这样的事情:

var style = $('head>style');
style.text( style.text().replace(/(img\s*\{[^}]*)max-width:\s*calc\(100%\s*-\s*10px\);([^}]*\})/g, "$1$2") );

JSFiddle example

或者,删除所有img样式有点简单:

var style = $('head>style');
style.text( style.text().replace(/img\s*\{[^}]*\}/g, "img {}") );

Another JSFiddle

如果您需要删除更具体的选择器,则可以修改regex

var style = $('head>style');
style.text( style.text().replace(/body\simg\.fr-dii\s*\{[^}]*\}/g, "") );

One more JSFiddle

答案 1 :(得分:-1)

你可以覆盖头部样式

  1. 新标签
  2. img onload callback - 设置css宽度自定义大小
  3. :)