2012-08-30 38 views
16

Gizle/show menüsüne komut dosyası yazıyor ancak bazı sıkıntılarım var. Sonunda ne yapmak istediğinizi yorumundaTanımlanmamış özellik 'display' özelliği ayarlanamıyor

function displayMenu() { 
//var classMenu = event.target.className; 
//classMenu += 'Menu'; 
    //document.getElementsByClassName(classMenu).style.display = 'block'; 
document.getElementsByClassName('btn-pageMenu').style.display = 'block'; 
    } 

ama işe yaramıyor statik var deneyin bile. BB'de :

fieldset.toolsbox ul.btn-pageMenu {display:none;} 

Ben de böyle deneyin:

.btn-pageMenu {display:none;} 

yok daha başarılı. Birinin önerisi var mı? JS'yi öğreniyorum ve diğer benzer senaryolarla karşılaştırdığımda hata bulamıyorum. Yardımlarınız için

Teşekkür :)

+0

Neden Gizleme için jQuery kullanmak ve göstermiyorsunuz? Ama yine de, doğru yolu hedeflediğinizden emin olun. öğeniz gerçekten "btn-pageMenu" sınıfına sahip mi, yoksa kullanabileceğiniz bir kimlik var mı? –

+1

Çünkü kendi JS betiğimi, bazı özellikler için tam bir kütüphane kullanmamayı tercih ediyorum. Ve evet dersi kullandığımdan eminim. – TikTaZ

+0

@TikTaZ: FYI 'fieldset.toolsbox ul # btn-pageMenu {display: none;}' css'nizde getElementById ('btn-pageMenu') 'veya' document.querySelector ('# btn-) kullanımını etkinleştirir pageMenu ') – KooiInc

cevap

46

document.getElementsByClassName('btn-pageMenu') bir nodeList sunar. Sen kullanmalıdır: document.getElementsByClassName('btn-pageMenu')[0].style.display (o değiştirmek istediğiniz listenin ilk elemanı ise

Listede aracılığıyla tüm düğümler döngü için style.display değiştirmek istiyorsanız:.

var elems = document.getElementsByClassName('btn-pageMenu'); 
for (var i=0;i<elems.length;i+=1){ 
    elems[i].style.display = 'block'; 
} 

tam olduğu: eğer Ben sitede https://plainjs.com/javascript/styles/set-and-get-css-styles-of-elements-53/ Söz konusu yanıtı buldum

​$('.btn-pageMenu').css('display'​​​​​​​​​​​​​​​​​​​​​​​​​​​,'block');​​​​​​ 
+0

Zamanınızı boşa harcadığım için üzgünüm, unik bir className belirttiğim zihnimde ID olarak bulacağımı düşündüğümde, sınıfın mutiple olabileceğini unutun, böylece bir liste döndürün. Yardım için teşekkürler :) – TikTaZ

+2

Merhaba @TikTaz, bir soruya cevap nadiren zaman kaybıdır. Bence başka insanlar da cevaplardan yararlanabilir. – KooiInc

0

Bu morina olarak

: gibi kullanım jquery o kadar basittir. e biz bir unsuru birden stilleri ekleyin:

let 
 
    element = document.querySelector('span') 
 
    , cssStyle = (el, styles) => { 
 
     for (var property in styles) { 
 
      el.style[property] = styles[property]; 
 
     } 
 
    } 
 
; 
 

 
cssStyle(element, { background:'tomato', color: 'white', padding: '0.5rem 1rem'});
span{ 
 
font-family: sans-serif; 
 
color: #323232; 
 
background: #fff; 
 
}
<span> 
 
lorem ipsum 
 
</span>