2012-12-20 19 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

相關問題