我已经尝试纠正下面的代码。但我无法找到解决方案。执行代码后,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属性。对不起,但坐在电脑前这让我心烦意乱。但浪费你的时间并不是理由。请接受我诚挚的歉意。谢谢花钱帮助我。
答案 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");
}