web-dev-qa-db-ja.com

2つの要素のいずれかが存在する場合、何かをする

現在、これを行って、2つの要素のいずれかが存在するかどうかを確認します。

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

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

54
3zzy
if ( $('#myDiv')[0] ) { //do something }

..最高の作品!

見つかった ここ

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

[〜#〜] edit [〜#〜](コメントごと)1回の呼び出しで複数のクラスによって要素を選択します:

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

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

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

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

16
Aaron
!$.isEmptyObject($.find('#urId'))

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

乾杯:)

2
bharadwaj

.each()を使用してください。

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

シンプル...

1
Adriano Pedro
$.fn.exists = function(ifExists) {
    return this.length ? ifExists.call(this, this) : this;
};

使用法:

$('.element1, .element2').exists(function(els) {
    // this and els refers to $('.element1, .element2')
});
1
user3336882

このプラグインの非常に更新されたバージョンを参照してくださいこちら !コールバック関数を使用するようになったため、選択した場合にチェーン可能性を維持できます。 ifステートメントを完全に置き換えることができます、またはifステートメント内で引き続き使用できます


このために、次のような非常にシンプルなjQueryプラグインを作成できます。

jsFiddle

(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);

[〜#〜] use [〜#〜]

//  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...
}

もちろん、このプラグインはさらに拡張して(一度に複数の呼び出しを処理し、乳母車に基づいて存在しない要素を作成します)、さらに拡張することもできますが、現在のところ、非常にシンプルで非常に必要な機能を実行します...この要素は存在しますか? TrueまたはFalseを返します

jsFiddle

1
SpYk3HH