2017-10-13 2 views
1

私はこの新しいです、私はこの質問で間違いを犯すと申し訳ありません。私はしようと疲れている、どのようにidにクラスを追加する場合は、クラスはjavascript(ないjquery)を使用して非表示。これまで私が試したことがあります。クラスが隠されている場合、javascript(jqueryはありません)を使ってidにクラスを追加してください。

function hidekeep() { 
 
    document.getElementById("keep-ads").style.display = "none" 
 
} 
 
setTimeout(function() { 
 
    var e = document.getElementById("keep-ads"), 
 
    t = document.getElementsByClassName("adsbygoogle"); 
 
    if(t.style.display = "none") { 
 
     e.className += "up"; 
 
    } 
 
}, 2e3);
.up {color:red;} 
 
.adsbygoogle {display:none}
<div id="keep-ads">Foo1 
 
</div> 
 
<div class="adsbygoogle">Bar1 
 
</div>

DEMO

+2

'(t.style.displayは= "なし")、' 'IF(t.style.display == "NONE")'する必要がある場合。 – Xufox

+1

'getElementsByClassName'は配列を返します –

+0

配列ではなく、' HTMLCollection'です。 – Xufox

答えて

0

===として比較です操作で代入演算子、です。

だからこれにあなたのブロックを変更します。

setTimeout(function() { 
    var e = document.getElementById("keep-ads"), 
    t = document.getElementsByClassName("adsbygoogle")[0]; // assuming there's just one element with the given class name 
    if(t.style.display == "none") { // changed here 
     e.className += "up"; 
    } 
}, 2e3); 

UPDATE:

クラス隠されたjavascriptの

使用して、element.style.display = 'none';にを使用している場合、IDにクラスを追加する方法要素を非表示にしてを読む要素のプロパティです。

function hidekeep() { 
 
    document.getElementById("keep-ads").style.display = "none" 
 
} 
 
setTimeout(function() { 
 
    var e = document.getElementById("keep-ads"), 
 
    t = document.getElementsByClassName("adsbygoogle")[0]; // assuming there's just one element with the given class name 
 

 
    if(t.style.display == 'none') { // changed here 
 
     e.className += "up"; 
 
    } 
 
}, 2e3); 
 

 
var hideBar1 = function() { 
 
    document.getElementsByClassName("adsbygoogle")[0].style.display = 'none'; 
 

 
}; 
 

 
document.getElementsByClassName("hide-ads")[0].addEventListener('click', hideBar1 , false);
.up {color:red;}
<div id="keep-ads">Foo1 
 
</div> 
 
<div class="adsbygoogle">Bar1 
 
</div> 
 

 
<button class="hide-ads"> 
 
HIDE 
 
</button>

+0

高さの使用はどうですか?私はそれを試したが、それは動作しませんhttp://jsfiddle.net/bt3Lo9fc/ – Asalan

+0

@アサラン私の更新された答えを参照してください – mrid

0

document.getElementsByClassNameコレクションオブジェクトではなく、単一の要素を(等document.getElementByIdはない)を返します。だからt.styleをチェックすると、そこにはありません。あなたはより多くのようなものにしたいと思う:

JavaScriptで
document.getElementsByClassName("adsbygoogle").forEach(function(t) { 
    if (t.style.display === 'none') e.className += 'up'; 
}); 
関連する問題