2

すべて、私はjqueryの初心者です。要素の値を検証するためのコードを書く必要がある場合があります。以下のように。

var selectedLayOutIdx=$("#spanSelectedLayout").html();
if (selectedLayOutIdx!=undefined && selectedLayOutIdx!="") {
    alert("The value is null, please check it.");
    return;
} else {
    //keep going.
} 

このコードは冗長に見えることがわかりました。jquery でコードをより楽しく動作させるためのより良い方法があるに違いないと思います。これまでのところ、私はそれを見つけていません。

私を助けてください 。ありがとう。

4

4 に答える 4

3

jQuery.trim()を使用できます:

var selectedLayOutIdx=$.trim( $("#spanSelectedLayout").html() );
if( selectedLayOutIdx == "" ) {
  //its empty
}

また

if( !$.trim($("#spanSelectedLayout").html()) ) {
     //its empty
}
于 2013-03-05T11:34:33.293 に答える
1
var result=$("#spanSelectedLayout").html().replace(/^\s+|\s+$/g, '') 
if( result== "" ){

.
.
.

これはすべてのブラウザに有効です。

.trim()は、IEの一部のバージョンでは機能しません。

于 2013-03-05T11:42:23.807 に答える
1

次のコードを使用して、スパンの値を確認できます。

var selectedLayOutIdx=$("#spanSelectedLayout").text();
if(selectedLayOutIdx == ""){
  alert("Value is null")
}else{
  // Your code
}

更新 (短いバージョン):

if($("#spanSelectedLayout").text()){
  // code if text present
}
于 2013-03-05T11:38:28.787 に答える
1

まず、要件が何であるかを正確に定義する必要があります。あなたのコード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
}
于 2013-03-05T12:47:27.837 に答える