"未捕获的TypeError:无法读取属性'长度' null JAVASCRIPT

时间:2017-02-09 04:44:37

标签: 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:无法读取属性' length' of null"。这个错误意味着什么,我怎么能让它工作?

4 个答案:

答案 0 :(得分:4)

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

if (document.getElementById('abcd'))

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

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

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

答案 1 :(得分:1)

这是因为id ="abcd"

中没有元素

所以试试这个;

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

答案 2 :(得分:0)

尝试这样。获取字段的值然后使用长度进行比较。

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">
&#13;
&#13;
&#13;

答案 3 :(得分:0)

下面的代码应该有用..

if (document.getElementById('myElementId') === null){
 alert('Does not exist!');
}else{
 alert('Exist!');
}