2017-07-11 22 views
0

Jqueryで "selector"が重複しないようにする方法はありますか? JavaScriptで「this」というキーワードを使用するのと同じように、 というコードを宣言しなければならないので、 という別の変数を宣言する必要はありません。 例:Jqueryのセレクタの省略形

if ($(obj).parent().find(".ValidationErrors").length && 
    $(obj).parent().find(".ValidationErrors").text().indexOf("Max") < 0) { 
    return false; 
} 

答えて

6

あなた.ValidateErrors要素への参照を保持する変数を作成するには実際の代替はありませんあなたのコードサンプルを考えます。ただし、returnを短縮して、条件の結果のみを含めることができます。これを試してみてください:

var $errors = $(obj).parent().find(".ValidationErrors") 
return !($errors.length && $errors.text().indexOf("Max") < 0); 

jQueryの要素が存在しない場合でも、text()から文字列を返しますので、ロジックはちょうどにさらに短縮することができるよう実際にlengthチェックが冗長である:

return $(obj).parent().find(".ValidationErrors").text().indexOf("Max") != -1; 
+0

この方法が効率的でない場合は、私にお答えください: if((error = $(obj).parent()。find( "。ValidationErrors"))。length){error.remove();} – user7267363

+0

私は、論理よりも構文よりも効率が重視される。私はあなたの「エラー」の使用について混乱しています。条件の 'length'と同じ値を設定することは非常に奇妙です。特に、jQueryオブジェクトのように' remove() 'を呼び出すと –

関連する問題