“未捕获的类型错误:无法读取空的 JAVASCRIPT 属性‘length’
2017-02-09
32292
我使用简单的长度函数根据 id 检查长度是否大于零。我使用的代码是
if ($('#abcd').length > 0)
{
var abcd = $('#abcd').val();
}
此代码运行正常,不会产生任何错误。但如果我以这种方式使用简单的 javascript
if (document.getElementById('abcd').length > 0)
{
var abcd = document.getElementById('abcd').val();
}
则它不起作用并产生此错误“未捕获的类型错误:无法读取 null 的属性‘长度’”。这个错误是什么意思,我该如何让它正常工作?
3个回答
如果元素不存在,则
getElementById
方法将返回
null
,而您尝试获取其
length
属性,这会引发异常。相反,只需在 if 条件中检查它是否已定义即可。
if (document.getElementById('abcd'))
使用变量,而不是获取元素两次。虽然 DOM 元素没有
val()
方法(jQuery 方法),但可以使用
value
属性来获取值。
var ele = document.getElementById('abcd');
if (ele){
var abcd = ele.value;
}
Pranav C Balan
2017-02-09
这是因为
id ="abcd"
中不会有元素,
所以试试这个;
if (document.getElementById('abcd')){
var abcd = document.getElementById('abcd').val();
}
Saurabh Agrawal
2017-02-09
尝试这样做。获取字段的值,然后使用长度进行比较。
if ($('#abcd').val().length > 0)
{
var abcd = $('#abcd').val();
}
if ($('#abcd').val().length > 0)
{
var abcd = $('#abcd').val();
console.log(abcd);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="abcd" value="hello">
Hikmat Sijapati
2017-02-09