2017-02-09 136 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!'); 
} 
相關問題