2010-04-22 61 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"); 
}