2017-10-13 35 views
1

我在這裏是新的,抱歉,如果我對這個問題做一些錯誤。我厭倦了嘗試,如果類隱藏使用JavaScript(沒有jQuery)如何添加類的ID。這是我到目前爲止所嘗試過的。如果類是隱藏的,然後將類添加到JavaScript與id(沒有jquery)

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 = 「無」)'應該是'如果(t.style.display == 「無」)'。 – Xufox

+1

'getElementsByClassName'返回一個數組 –

+0

不是一個數組,而是一個'HTMLCollection'。 – Xufox

回答

0
在JavaScript

=是賦值運算符,其中作爲==是一個比較操作。

所以你的陣營改成這樣:

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:

如何類添加到ID,如果類使用JavaScript

使用element.style.display = 'none';隱藏隱藏一個元素並閱讀style.display元素的屬性。

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

@Asalan看到我更新的答案 – mrid

0

document.getElementsByClassName返回一個集合對象,而不是一個單一的元件(如document.getElementById一樣)。所以當你檢查t.style時,它不在那裏。你會想更多的東西一樣:

document.getElementsByClassName("adsbygoogle").forEach(function(t) { 
    if (t.style.display === 'none') e.className += 'up'; 
}); 
相關問題