回答:
lenght
代わりに使用しましたlength
; スペルミスです。
.length
。
(私は答えに投票するのに十分な評判がないようです...)
ウルフは書きました:
未定義またはnullオブジェクトのlengthプロパティを呼び出すと、IEおよびWebkitブラウザーが失敗します。
代わりにこれを試してください:
// NOTE!! THE FOLLOWING IS WRONG; DO NOT USE! -- EleotleCram if($("#something") !== null){ // do something }
または
// NOTE!! THE FOLLOWING IS WRONG; DO NOT USE! -- EleotleCram if($("#something") === null){ // don't do something }
未定義またはnullオブジェクトでlengthプロパティを呼び出すとブラウザーが失敗することは事実ですが、jQueryのセレクターの結果($( '...'))がnullまたは未定義になることはありません。したがって、コードの提案は意味がありません。他の答えの1つを使用してください。
(2012年の更新)人々がコードを見て、この答えはリストのかなり上位にあるので:ここ数年、私はこの小さなプラグインを使用してきました:
jQuery.fn['any'] = function() {
return (this.length > 0);
};
私は思う。任意の()$(「div要素を」)よりも良好読み込む。$(「DIV」)の長さを、プラスあなたはタイプミスから限り苦しむません:。$(「DIV」)アイン()の実行時エラーになります、$( 'div')。 lenghtは、ほとんどの場合、常に偽りである可能性があります。
__
2012年11月の編集:
1)人々はコードを見て、コードの周りに書かれていることを読まない傾向があるので、ウルフの引用コードに2つの大きな注意書きのメモを追加しました。
2)この状況で使用する小さなプラグインのコードを追加しました。
ルックアップ関数は、一致する要素の配列を返します。長さがゼロかどうかを確認できます。要素を一度だけルックアップし、必要に応じて結果を再利用するための変更に注意してください。
var elem = $("#btext" + i);
if (elem.length != 0) {
elem.text("Branch " + i);
}
また、テキスト関数を使用してみましたか?要素が存在しない場合、何も実行されません。
$("#btext" + i).text("Branch " + i);
jquery $()関数は常にnull以外の値を返します-要素がセレクタクレタリアと一致したことを意味します。要素が見つからなかった場合は、空の配列を返します。したがって、コードは次のようになります-
if ($("#btext" + i).length){
//alert($("#btext" + i).text());
$("#btext" + i).text("Branch " + i);
}
jQuery 1.4では$ .isEmptyObject関数を取得しますが、私たちのような古いバージョンのjQを使用せざるを得ない場合は、貧弱なDrupal開発者がこのコードを盗むだけです。
// This is a function similar to the jQuery 1.4 $.isEmptyObject.
function isObjectEmpty(obj) {
for ( var name in obj ) {
return false;
}
return true;
}
次のように使用します。
console.log(isObjectEmpty(the_object)); // Returns true or false.
「未定義」の使用についてはどうですか?
if (value != undefined){ // do stuff }
これを行うには、lengthプロパティを使用します。
jQuery.fn.exists = function(){return ($(this).length < 0);}
if ($(selector).exists()) {
//do somthing
}