2012-12-20 21 views
0

我需要使用一段JavaScript来查找当前的css样式,但在div打开之前。在div出现在页面之前需要获取ElementleylById

我的代码如下:这工作如果我添加它的实际div的开始(slidingDiv)

不过,我需要它,因为它会被用来控制显示的按钮在div下班前下方。根据div是显示还是隐藏,会有不同的按钮显示。

非常感谢

皮特

<script> 
if(document.getElementById('slidingDiv').style.display == 'none') alert('none'); 
else alert('show'); 
</script> 
+4

你的逻辑有一些问题。如果你更详细地解释你的问题,一定有办法解决。 –

+3

您无法获取尚不存在的内容的引用。您应该从具有'display:none'的div开始(或者在开始时隐藏它),并且只在您准备好时才显示它。 – DaveRandom

回答

2

如果你的意思是你需要编写的JavaScript代码块中的<div>出现在源顺序,然后将其附着在window.onload推迟JavaScript的面前:

<script> 
    window.onload = function() { 
     if (document.getElementById('slidingDiv').style.display == 'none') { 
      alert('none'); 
     } 
     else { 
      alert('show'); 
     } 
    }; 
</script> 
<div id="slidingDiv"></div> 

如果您使用jQuery,那么它更容易:

<script> 
    $(document).ready(function() { 
     if ($('#slidingDiv').not(':visible')) { 
      alert('none'); 
     } 
     else { 
      alert('show');    
     } 
    }); 
</script> 
<div id="slidingDiv"></div> 

虽然最佳做法是将任何和所有JavaScript文件放在页面的底部,以便您的页面先加载内容,然后再进行任何渐进式增强,否则您的使用将不得不等待页面完成正在加载,而你正在加载任何奇特的JavaScript效果。

0

只隐藏你的CSS中的两个按钮“display:none;”把你的代码放在你的slidingDiv和按钮下面。

你真正应该做的是寻找dom准备好(然后你可以把你的javascript代码放在任何地方 - 当然它应该仍然在页面底部)。

,如果你不wnat自己写的domready中和不要想在你的网页jQuery的,也有很聪明domready中实现,例如this

你会使用它这样的:

domready(function() { 
    if (document.getElementById('slidingDiv').style.display == 'none') { 
    alert('none'); 
    } 
    else { 
    alert('show'); 
    } 
}); 

编辑: 附加的东西到你的HTML,你可以只设置innerHTML

domready(function() { 
    var appendDiv = document.getElementById('someDivToAppend'); 
    if (document.getElementById('slidingDiv').style.display == 'none') { 
    appendDiv.innerHTML('<p>hidden</p>'); 
    } 
    else { 
    appendDiv.innerHTML('<p>shown</p>'); 
    } 
}); 

或者你可以使用document.createElementappendChild三通

domready(function() { 
    var appendDiv = document.getElementById('someDivToAppend') 
    , newElement = document.createElement('div') 

    if (document.getElementById('slidingDiv').style.display == 'none') { 
    newElement.text = 'hidden'; 
    } 
    else { 
    newElement.text = 'shown'; 
    } 
    appendDiv.appendChild(newElement); 
}); 

使用MDN-DOCS

+0

太棒了!作品一种享受。如何打印HTML而不是警报? –

+0

看到我的编辑,如何做到这一点,并使用mdn文档! – hereandnow78

相关问题