“未捕获的类型错误:无法读取空 JAVASCRIPT 的属性‘长度’

新手上路,请多包涵

我正在使用简单的长度函数来根据 id 检查大于零的长度。我使用的代码是

if ($('#abcd').length > 0)
{
    var abcd = $('#abcd').val();
}

这段代码工作正常,没有产生任何错误。但是如果我以这种方式使用简单的javascript

 if (document.getElementById('abcd').length > 0)
{
    var abcd = document.getElementById('abcd').val();
}

然后它不起作用并产生此错误“Uncaught TypeError:无法读取 null 的属性’length’”。这个错误是什么意思,我怎样才能让它工作?

原文由 Upendra Sharma 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 312
1 个回答

如果该元素不存在,则 getElementById 方法将返回 null 并且您正在尝试获取它的 length 抛出异常的属性。相反,只需在 if 条件下检查它是否已定义。

 if (document.getElementById('abcd'))


使用变量而不是获取元素两次。虽然没有 val() 作为 jQuery 方法的 DOM 元素方法,而是使用 value 属性来获取值。

 var ele = document.getElementById('abcd');

if (ele){
    var abcd = ele.value;
}

原文由 Pranav C Balan 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题