2010-11-01 64 views
0

我希望你們可以幫助我。我有以下代碼Javascript顯示div

</textarea> 
    <br />Word Count: <input type="text" name="c" value="311" size="5" onkeyup="cnt(document.script.w,this)" /> 
    </form> 

    <script type="text/javascript"> 
    var myNumValue = document.getElementById('c').value; 
    var myNum = parseInt(myNumValue); 
    var upperLimit=200; 
    var lowerLimit=10; 

    if(upperLimit == lowerLimit) 
     { 
document.getElementById('div1').style.visibility='visible'; 
     } 
    </script> 

    <div id="div1" style="visibility: hidden;"> 
    Super cool hidden div! 
    </div> 

由於某些原因,我無法獲得div顯示。我已經嘗試設置上和下相同,並使用== if,任何內部的if顯示(例如,如果一個document.write它將顯示),但出於某種原因,div不會顯示。

我錯過了什麼?

謝謝!

凱文

+2

是否有可能在「DIV1」對象尚未在此javascript正在運行時創建的?你可能想將'div1'聲明放在javascript之前 – Peanut 2010-11-01 05:22:45

+1

要添加到上面,請在document.getElementById('di v1')來確保它正在返回一個對象。 – Peanut 2010-11-01 05:24:21

+1

要進一步補充以上內容:通常認爲將您的腳本放在您的''標籤之前是很好的做法,以避免這種情況。 – 2010-11-01 05:25:27

回答

1

您還沒有指定id爲您現場屬性:

<input type="text" name="c" value="311" size="5" onkeyup="cnt(document.script.w,this)" /> 

應該是:

<input type="text" name="c" id="c" value="311" size="5" onkeyup="cnt(document.script.w,this)" /> 

因爲你缺少的id那裏,你最有可能得到一個錯誤和你的腳本在中間停頓;您的代碼沒有達到if條件的原因。

-1

請試試這個

document.getElementById('div1').style.display = 'block'; 
+0

OP正在使用'style =「visibility:hidden;」' – Sarfraz 2010-11-01 05:26:45

0

你忘了關閉<script>標籤還是你只是沒有剪切/粘貼嗎?

if(upperLimit == lowerLimit) 

是不正確的;您只是將upperLimit定義爲不等於lowerLimit。

+1

引用來自OP:**我已經嘗試設置上下相同,並使用== ** – Sarfraz 2010-11-01 05:25:20

+0

我會很生氣,它在那裏。呵呵。 – 2010-11-01 05:26:23

2

你的第一個問題是輸入沒有id所以,正如Sarfraz所說,document.getElementById('c')會報錯。

雖然這不是唯一的關鍵問題。

您的腳本不在函數中,因此只要解析它就會運行。

div元素出現在腳本元素之後的文檔中,因此瀏覽器在腳本運行時不知道它存在。

document.getElementById('div1')將因此錯誤。

將腳本元素移動到div元素之後,或者將其包裝到一個函數中並延遲執行,直到在元素存在後觸發的事件(如onload(標準)或ondomready(由許多JS庫提供) 。

-1

ü沒有創建DIV1 的對象首先創建對象。

<div id="div1" style="visibility: hidden;"> 
    Super cool hidden div! 
</div> 
<script type="text/javascript"> 
var myNumValue = document.getElementById('c').value; 
var myNum = parseInt(myNumValue); 
var upperLimit=200; 
var lowerLimit=200; 

if(upperLimit == lowerLimit) 
{ 
    document.getElementById('div1').style.visibility='visible'; 
} 
</script>