2011-07-06 112 views
1

這是一個奇怪的,過去兩天我一直在撞牆撞牆。之前做過類似的事情,所以不確定問題是什麼。javascript getelementbyid爲空

你可以看到在這裏工作頁:http://psssoftware.net/forms.html

我試圖隱藏在右邊的「TESTBOX」,但是當我試圖通過ID得到它裏面空空如也。沒有其他具有相同標籤名稱的元素,該ID是正確的。我希望有另一雙眼睛能夠看到的東西。

<script language="JavaScript" type="text/javascript"> 


var x = document.getElementById('col-ab-affUSLF'); 
var y = document.getElementById('col-c-affUSLF'); 
x.style.width = 'auto !important'; 
y.style.display = 'none !important'; 


</script> 

謝謝, 布雷克

+0

一個額外雙引號「能否請您發表您的相關的JavaScript如果你真的嗎?鍵入它的小寫字母('getelementbyid'),那麼它將無法正常工作,因爲它應該是駝峯式的:'getElementById('idName')' –

+0

@DavidThomas謝謝。 – Blake

回答

4

與給定的ID在的getElementById被稱爲的時間不存在的元素。在執行DOM操作(包括嘗試獲取具有給定ID的元素)之前,有[爲數衆多]框架「等待DOM準備就緒」(例如onload)是有原因的。

快樂編碼。

+0

我認爲你完全正確。一旦我回家,我會確認。謝謝 – Blake

+0

框架不會等待任何事情,使用DOMready函數取決於程序員。 – RobG

+0

在onload事件中將其封裝在一個名爲它的函數中,其工作方式與預期完全相同。多謝你們。 – Blake

1

您在此行中有一個不必要的雙引號:

y.style.display = 'none !important"'; 

它看起來像是擺脫你的腳本標籤。

0

展望源,這是你的JS:

<script language="JavaScript" type="text/javascript"> 


    var x = document.getElementById('col-ab-affUSLF'); 
    var y = document.getElementById('col-c-affUSLF'); 
    x.style.width = 'auto !important'; 
    y.style.display = 'none !important"'; 


</script> 

它看起來像你有你的y.style.display = 'none !important"';