54

私は現在、次の2つの要素のいずれかが存在するかどうかを確認するためにこれを行っています。

if ($(".element1").length > 0 || $(".element2").length > 0) {
  //do stuff...
}

同じものを書き直すより良い方法はありますか?つまり、.lengthと同じ.length > 0ですか?

4

7 に答える 7

48
if ($(".element1").is('*') || $(".element2").is('*')) {
    // code
}

編集(コメントごと)1回の呼び出しで複数のクラスによって要素を選択します。

if ($(".element1, .element2").is('*')) {
    // code
}
于 2009-12-14T05:41:57.810 に答える
25
if ( $('#myDiv')[0] ) { //do something }

..最高の作品!

ここにあります

于 2009-12-14T06:00:33.017 に答える
16

すべての jQuery 要素には.lengthプロパティがあります。あなたはただ行くことができます:

if ($('img').length) // Implies: If this element exists..

http://jqueryfordesigners.com/element-exists/

于 2011-03-08T12:08:12.980 に答える
2
!$.isEmptyObject($.find('#urId'))

要素が存在する場合は「true」を返し、存在しない場合は False を返します。

乾杯 :)

于 2013-01-18T13:06:58.523 に答える
1

.each() を使用するだけです。

$(".element1").each(function(){
  //Do Something here
}

単純...

于 2013-09-05T17:11:30.220 に答える
1

このプラグインの非常に更新されたバージョンをここで参照してください! コールバック関数を使用するようになったため、必要に応じて連鎖性を維持できます。if ステートメントを完全に置き換えるか、ifステートメント内で引き続き使用できます


このための非常に単純な jQuery プラグインを作成できます。

jsフィドル

(function($) {
    if (!$.exist) {
        $.extend({
            exist: function(elm) {
                if (typeof elm == null) return false;
                if (typeof elm != "object") elm = $(elm);
                return elm.length ? true : false;
            }
        });
        $.fn.extend({
            exist: function() {
                return $.exist($(this));
            }
        });
    }
})(jQuery);

使用する

//  With ID 
$.exist("#eleID");
//  OR
$("#eleID").exist();

//  With class name
$.exist(".class-name");
//  OR
$(".class-name").exist();

//  With just tag // prolly not best idea aS there will be other tags on site
$.exist("div");
//  OR
$("div").exist();

あなたのIfステートメントで

if ($(".element1").exist() || $(".element2").exist()) {
    ...stuff...
}

もちろん、このプラグインはさらに拡張して、より洗練されたものにすることができます (一度に複数の呼び出しを処理し、乳母車に基づいて存在しない要素を作成します)。この要素は存在しますか?戻るTrueFalse

jsフィドル

于 2012-11-09T17:13:07.567 に答える
1
$.fn.exists = function(ifExists) {
    return this.length ? ifExists.call(this, this) : this;
};

利用方法:

$('.element1, .element2').exists(function(els) {
    // this and els refers to $('.element1, .element2')
});
于 2014-02-21T11:03:23.457 に答える