まず、要件が何であるかを正確に定義する必要があります。あなたのコードundefined
では、html の jQuerys 実装に対してテストすることは決して返さundefined
れないので、それに対してテストする理由はありません。ただし、null に対してテストする理由がある場合とない場合があります。
<div id="spanSelectedLayout">content</div>
var txt = $("#spanSelectedLayout").html() //txt will be "content"
<div id="spanSelectedLayout"> </div>
var txt = $("#spanSelectedLayout").html() //txt will be return " "
<div id="spanSelectedLayout"> </div>
var txt = $.trim($("#spanSelectedLayout").html()) //txt will be return ""
<div id="spanSelectedLayout"> </div>
var txt = $("#spnSelectedLayout").html() //txt will be null
後者は、セレクターのスペルミス、つまりバグが原因で発生する可能性が最も高いため、おそらく "" またはすべての空白文字列とは異なる方法で処理する必要があります。しかし、"" とすべての空白の HTML は意味的に同じなので、おそらくこれらの値を同様に扱う必要があります。
var selectedLayOutIdx=$.trim($("#spanSelectedLayout").html()); if( selectedLayOutIdx == "" ) { //空です }
ただし、$.trim(null)
戻り値""
が null ではないため、バグが隠されるため、より簡潔なコードを使用するか、このようなコードを使用するかを決定する必要があります。
var selectedLayOutIdx=$("#spanSelectedLayout").html();
if(selectedLayOutIdx == null) { throw "Invalid selector" }
if( && $.trim(selectedLayOutIdx) == "" ) {
//is empty
}