我使用简单的长度函数来根据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"。这个错误意味着什么,我怎么能让它工作?
答案 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;
答案 3 :(得分:0)
下面的代码应该有用..
if (document.getElementById('myElementId') === null){
alert('Does not exist!');
}else{
alert('Exist!');
}