2017-02-09 97 views
1

我用简单的长度函数来检查长度大于零基于ID代码,我现在用的就是“遗漏的类型错误:无法读取空的特性‘长度’JAVASCRIPT

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

此代码是工作的罚款和不产生错误,但如果我使用这种方式

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

那么它是不是工作简单的JavaScript和产生这个错误“遗漏的类型错误:无法读取空的特性‘长度’。”这个错误是什么意思和我怎么能得到这个工作?

回答

3

如果元素不存在,那么getElementById方法将返回null,并且您试图获取它的length属性,该属性抛出异常。相反,只需检查它的定义或不在if条件。

if (document.getElementById('abcd')) 

使用一个变量,而不是越来越元的两倍。尽管没有val()方法用于jQuery方法的DOM元素,但是使用value属性来获取值。

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

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

这是因为将在id ="abcd"不是元素,

那么试试这个;

if (document.getElementById('abcd')) 
{ 
var abcd = document.getElementById('abcd').val(); 
} 
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">

0

下面的代码应该工作..

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