2016-05-04 8 views
0

よろしくお願いいたします。インラインCSSを交換する - 見た目が単純ではない

<div class="theinsideofclass" style="theinsideofstyle" ...></div> 
<div class="theinsideofclass" style="theinsideofstyle" ...></div> 
<div class="theinsideofclass" style="theinsideofstyle" ...></div> 
<div class="theinsideofclass" style="theinsideofstyle" ...></div> 

これらは動的に変更されます(異なる時間に毎回)、私はソースコードを制御できません。

問題は、単にtheinsideofstyleを上書きしたいだけですが、すべての試行は失敗します。 !important;で試しましたが、うまくいきませんでした。インラインCSSをオーバーライドするとは思いませんか?とにかく、私のオプションは何ですか?明らかにシンプルなJSは、divs全体が毎回同じコードで変更/置き換えられるので、ここで私を助けません。

ちょっと考えてみてください。おそらく、解決策がいくつかあります。

+0

あなたのCSSを共有してください。 –

+0

あなたの実際のCSSとHTMLの詳細が必要な場合があります。 '!important'が動作しない場合、正しい方法であなたのCSSをターゲットにしていないように思えます。 – Andrew

+0

これは私たちにとって十分な情報ではありません。 'theinsideofstyle'の例を示してください – vaso123

答えて

0

あなたはページ全体がロードされると、すべてのリソースがロードされて、実行されたいくつかのJS、等書くことができます:あなたはJSインラインスタイルなしで、見ることができるように

function load() 
 
{ 
 
    var els = document.getElementsByClassName("theinsideofclass"); 
 
    for(var i = 0; i < els.length; i++) { 
 
     els[i].removeAttribute("style"); 
 
    } 
 
} 
 
window.onload = load;
.theinsideofclass { 
 
    color: green; 
 
    }
<div class="theinsideofclass" style="color: red;"> 
 
    My inline style is color: black 
 
</div> 
 
<div class="theinsideofclass" style="color: red;"> 
 
    My inline style is color: black 
 
</div> 
 
<div class="theinsideofclass" style="color: red;"> 
 
    My inline style is color: black 
 
</div>

を(赤色のフォント色)は通常、外部CSSスタイル(緑色)を上書きします。しかし、私のJSはtheinsideofclassクラスの要素からstyle属性を取り除いていますので、通常のCSS なしでを使用して!importantを使用してスタイルを設定することができます(他のすべてのオプションが使い果たされている場合を除いて決して使用しません)。

+0

私はそれを試しましたが、毎回 'divs'が生成されます。これが一旦解消されると、divは数分後に戻ってきて、すべてが始まってから始まります。 – yuvubalazo

+0

@yuvubalazoああ、私はあなたがページロード時に動的に生成されたということだと思った。それらはオンザフライで生成されていますか? –

+0

np。はい、オンザフライで。 – yuvubalazo

0

ちょっとdivの要素を折り返してループし、カスタムクラスを追加して、これらのdivにスタイルを定義することができます。

ご注意:あなたの質問では、CSSクラスも動的/変更されており、あなたはそのコントロールがありません。

HTML:

<div id="outerdiv"> 
    <div class="theinsideofclass" style="theinsideofstyle"></div> 
    <div class="theinsideofclass" style="theinsideofstyle"></div> 
    <div class="theinsideofclass" style="theinsideofstyle"></div> 
    <div class="theinsideofclass" style="theinsideofstyle"></div> 
</div> 

JS:

var children = document.getElementById('outerdiv').children; 

for (var i = 0; i < children.length; i++) { 
    var child = children[i]; 
    child.classList.add('myclass'); // this will add the class "myclass" to all the children divs inside the outerdiv 
} 

CSS:

:あなたもしてDIVから style属性を削除する限り行くことができる
.myclass { 
    background-color: red !important; // which ever style you want to overwrite 
} 

child.removeAttribute('style'); 

あなたのCSSで!importantを使用する必要はありません。

EDIT:OPさんのコメントに基づいて

それらがレンダリングされている場所を制御することができた場合にも、外側のdivに、これらすべてのdivをラップしてみてください:

<div id="outerdiv"> 
    <div class="theinsideofclass" style="theinsideofstyle"></div> 
    <div class="theinsideofclass" style="theinsideofstyle"></div> 
    <div class="theinsideofclass" style="theinsideofstyle"></div> 
    <div class="theinsideofclass" style="theinsideofstyle"></div> 
</div> 

次に、あなたのCSSに:

#outerdiv > div { 
    background-color: red !important; 
} 
+0

私はそれを試みましたが、 'divs'が毎回生成されます。これが解雇された後、divsは数秒後に復帰し、すべてが始まります。 – yuvubalazo

+0

これらのdivはn秒ごとに生成され、それらのすべてにランダムなクラスとスタイルがありますか? – thepio

+0

クラスではありませんが、スタイルはあります。そしてn(t =時間)も変更されます。各スライドの時間を設定します。 – yuvubalazo

0

こんにちはあなたはスタイルを設定することができます以下のように空白に属性:

jQueryの

ちょっとここでデモを作業
$(document).ready(function(){ 

    $('.theinsideofclass').attr('style',''); 

}); 

https://jsfiddle.net/nm77md0L/https://jsfiddle.net/nm77md0L/1/

+0

'theinsideofclass'クラスのdivのスタイル属性を調べてチェックすると空白になります – RRR

0

div sがオンザフライで生成し、style属性が削除されるとき、importantに設定された第3引数でそのCSSStyleDeclarationsetPropertyを使用してみて再作成されますので。

//document.getElementsByClassName("theinsideofclass")[0].setAttribute('style', 'color: purple !important'); // recreates div 
 
document.getElementsByClassName("theinsideofclass")[0].style.setProperty('color', 'blue', 'important'); // maybe won't?
.theinsideofclass{color: green !important}
<div class="theinsideofclass" style="color: red !important">TXT</div>

私たちが再生され、どのように取得するdivを起こすものを見ることができないので、それが動作する保証はなく、それを試してみることができない、多分コードが再作成され ときstyle属性は直接変更されます。

関連する問題