有javascript null的问题

时间:2010-04-22 08:42:28

标签: javascript

我已经尝试纠正下面的代码。但我无法找到解决方案。执行代码后,firebug说“document.getElementById(haystack.value)为null”。我试过if(document.getElementById(haystack).value ==null),但没用。请帮帮我。

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

编辑:

haystack获得了城市的价值。当我在haystack -alert(haystack)上尝试“警报”时,我得到了肯定的答复。但当我尝试使用“document.getElementById(haystack).value”时,我收到一个错误。但有一点,干草堆获取的id元素可能存在也可能不存在。

再次编辑:

我认为生病会自杀。我把city作为输入元素的name属性而不是id属性。对不起,但坐在电脑前这让我心烦意乱。但浪费你的时间并不是理由。请接受我诚挚的歉意。谢谢花钱帮助我。

4 个答案:

答案 0 :(得分: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 :(得分:0)

您已拥有haystack对象:

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

document.getElementById用于获取元素,您已完成此操作并将其放在haystack变量中。无需再次呼叫document.getElementById(并且不正确)。阅读getElementById

答案 2 :(得分: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");
}

答案 3 :(得分:0)

用更少的行来做:

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