2013-06-19 41 views
1

我有一個空檢查在我的JavaScript代碼似乎並沒有像預期的那樣運行。 它是這樣的:Javascript空檢查似乎不工作

if (myVariable) { 
// Do things with my variable 
} 

當我到達if語句內,Chrome的Java控制檯說,我想用(MYVARIABLE)爲空值。也許我沒有正確理解if語句? 拋出錯誤的特定行是

window.document.getElementById("myElement").innerText = myVariable 

在此先感謝。

+0

我們需要更多的代碼,你可以設置的問題一個小提琴? –

+0

嘗試'if(typeof(myVariable)!=='undefined')' – alfasin

+0

它可能不是'myVariable',它是null。 –

回答

8

它告訴你,

window.document.getElementById("myElement") 

null。這可能意味着你的代碼在DOM解析之前運行。

您應該如何修復它取決於您沒有向我們顯示的代碼,但作爲一個實驗,您可以嘗試將該代碼移動到<body>末尾的<script>標記,看看是否有幫助。另外,請確認「myElement」確實是您打算定位的元素的「id」。

+0

因此,即使myElement存在,因爲它是一個ASP標籤它沒有被發現的Javascript?我把它改成了一個文本框,它工作正常。我會選擇這個作爲答案,因爲你建議尋找myElement是否存在。 –

+1

嗯,在ASP中,獲取到瀏覽器的實際「id」值與您在.asp文件中編碼的值不同。如果您執行「查看源代碼」或使用瀏覽器DOM檢查器,則可以看到實際的「id」值是什麼。有一種方法可以從ASP獲取,但我不確定它是什麼;有不計其數的Stackoverflow問題具有這些細節:-) – Pointy

0

當您將某些內容分配給空值或未定義的值時,這不是問題,應該拋出異常。

例如,你可以明確地說:

var something = null; 
var somethingElse = undefined; 
var somethingOtherThing = myNonExistentObject; 

這似乎意味着你misinterpretted例外呢?或者別的什麼是錯的。比如你試圖分配屬性的東西是null或undefined。

下面將引發錯誤:

var something = null; 
something.foo = 123; //error! something is null.