2017-02-09 33 views
1

私はIDに基づいて、ゼロより大きい長さをチェックするために、単純な長さの関数を使用していますコード私が使用していますが、このコードは正常に動作している「キャッチされない例外TypeError:ヌルのプロパティを読み取ることができません 『長さ』 JAVASCRIPT

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

で、エラーが生じない。しかし、私は、簡単なJavaScriptを使用していた場合、このように

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

を次に、それは、このエラー取り組んで生産されていません。「キャッチされない例外TypeErrorを:ヌルのプロパティを読み取ることができません 『長さ』」このエラーは何を意味します。どのように私はこれを働かせることができますか?

答えて

3

要素が存在しない場合、メソッドはnullを返し、それはlengthプロパティを取得しようとしていますが、例外がスローされます。代わりにif条件で定義されているかどうかを単純にチェックします。

if (document.getElementById('abcd')) 

代わりに二回要素を取得する変数を使用します。 jQueryメソッドであるDOM要素のメソッドはval()ではありませんが、代わりに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!'); 
} 
関連する問題