2010-04-22 63 views
1

我試過糾正下面的代碼。但我無法找到解決方案。執行代碼後,螢火蟲說「document.getElementById(haystack.value)爲空」。我試過if(document.getElementById(haystack).value ==null),但它沒用。請幫助我。有問題關於javascript null

 var haystack=document.getElementById('city1').value; 
if(!document.getElementById(haystack).value) 
{ 
    alert("null"); 
} 
else 
{ 
    alert("not null"); 
} 

編輯:

草垛得到這個城市的價值。當我在乾草堆-alert(haystack)上嘗試「警報」時,我得到了肯定的答覆。但是當我嘗試與「document.getElementById(haystack).value」我得到一個錯誤。不過,有一件事情,乾草堆獲得的id元素可能存在或可能不存在。再次

編輯:

我覺得生病自殺。我把城市作爲input屬性的name屬性而不是id屬性。我很抱歉,但坐在電腦前,這讓我放鬆了很久。但是浪費你的時間不是理由。請接受我誠摯的歉意。感謝Spender幫助我。

+1

不解釋你怎麼認爲你能解決你的問題,說明你的*問題*。什麼是'乾草堆'?你想達到什麼目的? – Tomalak 2010-04-22 08:47:09

+0

乾草堆獲得城市的價值。我在乾草堆警報(乾草堆)上警惕着,我得到了積極的答覆。但是當我用document.getElementById(haystack).value試試它時,我得到一個錯誤。 – user165242 2010-04-22 09:22:55

+0

爲是不完整的 – user165242 2010-04-22 09:25:25

回答

7

你正在努力查找財產上document.getElementById('city1')可能爲null。試試這個:

var haystackElement=document.getElementById('city1'); 
if(!haystackElement) 
{ 
    alert("haystackElement is null"); 
} 
else 
{ 
    alert("haystackElement is not null"); 
    var haystack=haystackElement.value; 
    if(!haystack) 
    { 
     alert("haystack is null"); 
    } 
    else 
    { 
     alert("haystack is not null"); 
    } 

} 
+1

當然,如果DOM中沒有這樣的元素,document.getElementById('city1')。值將立即出錯。 – spender 2010-04-22 08:49:28

+2

是的 - 你會得到一個異常,因爲你解除了空引用。檢查元素是否先存在是最好的。 – JBRWilkinson 2010-04-22 08:54:41

+1

Downvote無評論。對於下流者:SO鼓勵downvoters發表評論。 – spender 2010-04-22 09:15:14

0

你已經有haystack對象:

var haystack=document.getElementById('city1'); 
if(!haystack.value) 
{ 
    alert("null"); 
} 
else 
{ 
    alert("not null"); 
} 

document.getElementById用於獲取元素,你已經做到了,並把它放在了haystack變量。沒有必要再次打電話給document.getElementById(並且不正確)。閱讀關於getElementById

+0

這仍然會報告document.getElementById('city1')爲空 - 您需要在檢查它的值之前檢查它。 – Jez 2010-04-22 08:47:11

+0

@Jes - 錯過了第一行的'.value' ...謝謝! – Oded 2010-04-22 08:47:57

0

不幸的是你對我們一些代碼,描述一個錯誤(這看起來像它已經被改編成不正確地)沒有告訴我們什麼你實際上是試圖實現。

看看這個代碼示例,它修復了穩健性的問題與您的代碼,並有更詳細的警報信息要清楚被檢測的是什麼。

希望這將清除的東西了你。

var haystack = document.getElementById('city1').value; 
var haystack_element = document.getElementById(haystack); 
if (haystack_element) { 
    if (haystack_element.value) { 
     alert("The element has a true value"); 
    } else { 
     alert("The element has a false value, such as '' or 0"); 
} else { 
    alert("No element with that name"); 
} 
0

做它在更短的線路:

if ((el = document.getElementById('city1')) && el.value) { 
    alert ("not null"); 
} else { 
    alert ("null"); 
}