質問

確認方法を教えてくださいその存在の要素がマウスでクリック?

現在のコードとしています

if ($(selector).length > 0) {
    // Do something
}

ああこれまでにないアプローチす。にこのようなプラグインは機能しているのでしょうか。

役に立ちましたか?

解決

JavaScriptでは、もは'truthy'または'falsyのか、番号 0 (NaN) false, あ true.でも私たちと一緒に働きま

if ($(selector).length)

必要なこと >0 ます。

他のヒント

有!

jQuery.fn.exists = function(){ return this.length > 0; }

if ($(selector).exists()) {
    // Do something
}

これは: 群れのコードpodcastとJeff Atwood

ご利用いただいていたお客様

jQuery.fn.exists = function(){return ($(this).length > 0);}
if ($(selector).exists()) { }

することがでチェーン接続した場合ではありません。

この方がよいでしょう:

jQuery.exists = function(selector) {return ($(selector).length > 0);}
if ($.exists(selector)) { }

または、 から、よくある質問:

if ( $('#myDiv').length ) { /* Do something */ }

このまま使用します。がない場合は値のjQueryオブジェクトの配列を、配列の最初の項目が返されます。

if ( $('#myDiv')[0] ) { /* Do something */ }

使用できます:

// if element exists
if($('selector').length){ /* do something */ }

// if element does not exist
if(!$('selector').length){ /* do something */ }

最速かつ最も意味的に自己説明をチェックする存在で実際に使用平 JavaScript:

if (document.getElementById('element_id')) {
    // Do something
}

ですが、キッシュがとてもおいしかっ書のjQuery長代替すが、実行速でネイティブの.JSの作成方法。

での代替の書面に自分の jQuery 機能です。このインタビューを受けたことがあり遅くなり、その理由@snoverを記載しています。でもその他のプログラマのような印象を exists() 機能は何か固有のjQuery. JavaScript う/あることは理解されるべきである他者による編集コマンドな知識債務。

通知の不足、'#'前 element_id (これは平JSせ jQuery).

保存できるので、複数バイトを書き:

if ($(selector)[0]) { ... }

この作品では、jQueryオブジェクトもmasqueradesとして配列に使用させていただきたい配列のdereferencingオペレーターの最初の項目から 配列.を返します undefined がない場合、項目内の指定されたインデックス.

利用できる:

if ($(selector).is('*')) {
  // Do something
}

A 少し イトなものかもしれない。

このプラグインを使うことができ if 声明のように if ($(ele).exist()) { /* DO WORK */ } を利用したコールバック.

プラグイン

;;(function($) {
    if (!$.exist) {
        $.extend({
            exist: function() {
                var ele, cbmExist, cbmNotExist;
                if (arguments.length) {
                    for (x in arguments) {
                        switch (typeof arguments[x]) {
                            case 'function':
                                if (typeof cbmExist == "undefined") cbmExist = arguments[x];
                                else cbmNotExist = arguments[x];
                                break;
                            case 'object':
                                if (arguments[x] instanceof jQuery) ele = arguments[x];
                                else {
                                    var obj = arguments[x];
                                    for (y in obj) {
                                        if (typeof obj[y] == 'function') {
                                            if (typeof cbmExist == "undefined") cbmExist = obj[y];
                                            else cbmNotExist = obj[y];
                                        }
                                        if (typeof obj[y] == 'object' && obj[y] instanceof jQuery) ele = obj[y];
                                        if (typeof obj[y] == 'string') ele = $(obj[y]);
                                    }
                                }
                                break;
                            case 'string':
                                ele = $(arguments[x]);
                                break;
                        }
                    }
                }

                if (typeof cbmExist == 'function') {
                    var exist =  ele.length > 0 ? true : false;
                    if (exist) {
                        return ele.each(function(i) { cbmExist.apply(this, [exist, ele, i]); });
                    }
                    else if (typeof cbmNotExist == 'function') {
                        cbmNotExist.apply(ele, [exist, ele]);
                        return ele;
                    }
                    else {
                        if (ele.length <= 1) return ele.length > 0 ? true : false;
                        else return ele.length;
                    }
                }
                else {
                    if (ele.length <= 1) return ele.length > 0 ? true : false;
                    else return ele.length;
                }

                return false;
            }
        });
        $.fn.extend({
            exist: function() {
                var args = [$(this)];
                if (arguments.length) for (x in arguments) args.push(arguments[x]);
                return $.exist.apply($, args);
            }
        });
    }
})(jQuery);

jsFiddle

ご指定の一又は二つのコールバック.最終的には火災の場合は要素が存在するのは火災の場合、要素は ない が存在します。ただし、選択パスのみの機能でのみ火災時に要素が存在します。これにより、チェーンのページをご選択された要素は ない が存在します。もちろん、ドが存在する場合、最初の機能まで火災チェーンにします。

この コールバック異形の維持chainability の要素が返される継続できるチェーンのコマンドとして他のjQuery方式!

用途例

if ($.exist('#eleID')) {    /*    DO WORK    */ }        //    param as STRING
if ($.exist($('#eleID'))) { /*    DO WORK    */ }        //    param as jQuery OBJECT
if ($('#eleID').exist()) {  /*    DO WORK    */ }        //    enduced on jQuery OBJECT

$.exist('#eleID', function() {            //    param is STRING && CALLBACK METHOD
    /*    DO WORK    */
    /*    This will ONLY fire if the element EXIST    */
}, function() {            //    param is STRING && CALLBACK METHOD
    /*    DO WORK    */
    /*    This will ONLY fire if the element DOES NOT EXIST    */
})

$('#eleID').exist(function() {            //    enduced on jQuery OBJECT with CALLBACK METHOD
    /*    DO WORK    */
    /*    This will ONLY fire if the element EXIST    */
})

$.exist({                        //    param is OBJECT containing 2 key|value pairs: element = STRING, callback = METHOD
    element: '#eleID',
    callback: function() {
        /*    DO WORK    */
        /*    This will ONLY fire if the element EXIST    */
    }
})

いの答えがここには 正確ではありません どうもチェック要素の長さができ OK 多くの場合、100%に、その場合の数券の機能ではなく、試作る機能チェックすべての条件を返し回答サイズを変更する機能を提供でき:

$.fn.exists = $.fn.exists || function() { 
  return !!(this.length && (this[0] instanceof HTMLDocument || this[0] instanceof HTMLElement)); 
}

このチェックの長さと種類、現在確認できますこのようになっております:

$(1980).exists(); //return false
$([1,2,3]).exists(); //return false
$({name: 'stackoverflow', url: 'http://www.stackoverflow.com'}).exists(); //return false
$([{nodeName: 'foo'}]).exists() // returns false
$('div').exists(); //return true
$('.header').exists(); //return true
$(document).exists(); //return true
$('body').exists(); //return true

ための必要はありませんjQueryですね。平JavaScriptのが難しいのですが、意味的に正しいかチェック:

if(document.getElementById("myElement")) {
    //Do something...
}

場合によってお使いるidの要素を利用することができ、他のJavaScriptの設計方法へのアクセスは、DOM.

jQueryとっても良い感じでもないよう純粋なJavaScript秋忘...

を使用できること:

jQuery.fn.extend({
    exists: function() { return this.length }
});

if($(selector).exists()){/*do something*/}

その理由のすべての以前の応答を必要とす .length パラメータはほとんどがjqueryを使うの $() セレクタをquerySelectorAllの後ろにカーテン(またはその自然材料以外を使用しないことで直結).この方法は遅いので必要を解析してDOMツリー全体を見 すべての 一致するセレクター populating配列です。

の['length']パラメータが不要または有のコードをたくさん出てしまうと思います速い場合は直接利用 document.querySelector(selector) 代わりに、で返します最初の要素にマッチした場合はnullが見つかりません。

function elementIfExists(selector){  //named this way on purpose, see below
    return document.querySelector(selector);
}
/* usage: */
var myelement = elementIfExists("#myid") || myfallbackelement;

しかし、この方法はいってしまった、実際のオブジェクトが返されである微細ない場合がなくなるわけではありません保存する変数として、繰り返し使用(これまでとこれからの参照約の場合を忘れてしま).

var myel=elementIfExists("#myid");
// now we are using a reference to the element which will linger after removal
myel.getParentNode.removeChild(myel);
console.log(elementIfExists("#myid")); /* null */
console.log(myel); /* giant table lingering around detached from document */
myel=null; /* now it can be garbage collected */

場合があり望まれるところである。で利用できるためのループのようになります:

/* locally scoped myel gets garbage collected even with the break; */
for (var myel; myel = elementIfExist(sel); myel.getParentNode.removeChild(myel))
    if (myel == myblacklistedel) break;

かない場合には実際に必要な要素は、取得したい/店舗だけtrue/falseでダブルになります。を動作させることができ靴る事業資、なぜ結び目。

function elementExists(selector){
    return !!document.querySelector(selector);
}
/* usage: */
var hastables = elementExists("table");  /* will be true or false */
if (hastables){
    /* insert css style sheet for our pretty tables */
}
setTimeOut(function (){if (hastables && !elementExists("#mytablecss"))
                           alert("bad table layouts");},3000);

if ($(selector).length) {} である。で黙々休憩をアプリの場合 selector は、空のオブジェクト {}.

var $target = $({});        
console.log($target, $target.length);

// Console output:
// -------------------------------------
// [▼ Object              ] 1
//    ► __proto__: Object

私だけの提案を行って追加チェック {}.

if ($.isEmptyObject(selector) || !$(selector).length) {
    throw new Error('Unable to work with the given selector.');
}

まだ見よってその金と銀の使用法がひときわビット。

編集: 警告! このこない作家の場合 selector は文字列です。

$.isEmptyObject('hello') // FALSE in Chrome and TRUE in IE

$.contains() 何を欲しがっているのか?

jQuery.contains( container, contained )

$.contains() メソッドがtrueを返す場合、DOM要素により二つ目の引数はその子孫のDOM要素による最初の引数から直接の子た入れ子のクラスです。そうでない場合はfalseを返します。み要素のノードをサポートされの場合、二つめの引数は、テキストまたはコメントノード $.contains() はfalseを返します。

注意:最初の引数でなければなDOM要素ではなく、jQueryオブジェクトまたはJavaScriptオブジェクトです。

チェックでき要素が存在しまたは使用しない長さでjava scriptにした。の場合長さがゼロより大き要素がある場合は長さゼロ 要素が存在しない

// These by Id
if( $('#elementid').length > 0){
  // Element is Present
}else{
  // Element is not Present
}

// These by Class
if( $('.elementClass').length > 0){
  // Element is Present
}else{
  // Element is not Present
}

チェック体との相互作用を考慮する要素 が記載されて綺麗にjQuery webサイトそのもの!

をご利用 .長さ 物件のjQueryコ返される セレクター:

if ($("#myDiv").length) {
    $("#myDiv").show();
}

りますのでご注意だけではない試験する必要があるかどうかの要素が存在します。次のコードの要素に存在する場合には、何もしない (誤差)が生じない場合は:

$("#myDiv").show();

これは非常に類似するとすべての回答かもしれませんが、利用の ! オペレーターを回でき、boolean:

jQuery.fn.exists = function(){return !!this.length};

if ($(selector).exists()) {
    // the element exists, now what?...
}
$(selector).length && //Do something

み試験 DOM 要素

if (!!$(selector)[0]) // do stuff

hiwayの回答 また、以下の:

$.fn.exists = function() {
    return $.contains( document.documentElement, this[0] );
}

jQuery.含む かつDOM要素かどうかをチェックします最初にします。

を使用 document.documentElement 最初の引数として,その成果については,意味論の exists 法を用いることにより状態だけの存在をチェックの要素のドキュメント.

以下、私たちのスニペットの比較 jQuery.exists() に対する $(sel)[0]$(sel).length アプローチでも返却 truthy$(4) ながら $(4).exists() を返します false.この チェックが存在 素子DOMにこのように 望む結果.

$.fn.exists = function() {
    return $.contains(document.documentElement, this[0]); 
  }
  
  var testFuncs = [
    function(jq) { return !!jq[0]; },
    function(jq) { return !!jq.length; },
    function(jq) { return jq.exists(); },
  ];
    
  var inputs = [
    ["$()",$()],
    ["$(4)",$(4)],
    ["$('#idoexist')",$('#idoexist')],
    ["$('#idontexist')",$('#idontexist')]
  ];
  
  for( var i = 0, l = inputs.length, tr, input; i < l; i++ ) {
    input = inputs[i][1];
    tr = "<tr><td>" + inputs[i][0] + "</td><td>"
          + testFuncs[0](input) + "</td><td>"
          + testFuncs[1](input) + "</td><td>"
          + testFuncs[2](input) + "</td></tr>";
    $("table").append(tr);
  }
td { border: 1px solid black }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="idoexist">#idoexist</div>
<table style>
<tr>
  <td>Input</td><td>!!$(sel)[0]</td><td>!!$(sel).length</td><td>$(sel).exists()</td>
</tr>
</table>
<script>
  
  $.fn.exists = function() {
    return $.contains(document.documentElement, this[0]); 
  }
  
</script>

私のように利用普通のバニラはjavascriptの関係ではないかと思います。

function isExists(selector){
  return document.querySelectorAll(selector).length>0;
}

なjQuery

if(document.querySelector('.a-class')) {
  // do something
}

まずこの問いていただきたいと思いますように、スニペットのコードが現在使用

$.fn.exists = function(callback) {
    var self = this;
    var wrapper = (function(){
            function notExists () {}

            notExists.prototype.otherwise = function(fallback){
                if (!self.length) {                    
                    fallback.call();
                }
            };

            return new notExists;
        })();

    if(self.length) {
        callback.call();    
    }

    return wrapper;
}

やぎたあたりで終わってしまうので下のようにします-

$("#elem").exists(function(){
    alert ("it exists");
}).otherwise(function(){
    alert ("it doesn't exist");
});

いという見方もあるかもしれないが、多くのコードが書かれCoffeeScriptでは非常に小さい:

$.fn.exists = (callback) ->
    exists = @length
    callback.call() if exists        
    new class
       otherwise: (fallback) ->            
            fallback.call() if not exists

私の場合は見たかった場合にはオブジェクトの内部にあるのもいいもの、最初の答えをチェックのためのセレクタのセレクター..

// Checks if an object exists.
// Usage:
//
//     $(selector).exists()
//
// Or:
// 
//     $(selector).exists(anotherSelector);
jQuery.fn.exists = function(selector) {
    return selector ? this.find(selector).length : this.length;
};

ど:

function exists(selector) {
    return $(selector).length;
}

if (exists(selector)) {
    // do something
}

でも最小限に保存することに同封して、セレクターと $() ます。

を使用しています:

    $.fn.ifExists = function(fn) {
      if (this.length) {
        $(fn(this));
      }
    };
    $("#element").ifExists( 
      function($this){
        $this.addClass('someClass').animate({marginTop:20},function(){alert('ok')});               
      }
    ); 

を実行し、チェーンの場合のみjQuery要素が存在- http://jsfiddle.net/andres_314/vbNM3/2/

ここでは私が好きな exist 法jQuery

$.fn.exist = function(callback) {
    return $(this).each(function () {
        var target = $(this);

        if (this.length > 0 && typeof callback === 'function') {
            callback.call(target);
        }
    });
};

その他のバージョン対応のコールバックがセレクタが存在しない

$.fn.exist = function(onExist, onNotExist) {
    return $(this).each(function() {
        var target = $(this);

        if (this.length > 0) {
            if (typeof onExist === 'function') {
                onExist.call(target);
            }
        } else {
            if (typeof onNotExist === 'function') {
                onNotExist.call(target);
            }
        }
    });
};

例:

$('#foo .bar').exist(
    function () {
        // Stuff when '#foo .bar' exists
    },
    function () {
        // Stuff when '#foo .bar' does not exist
    }
);

$("selector")オブジェクトを返しの length 物件です。場合には、セレクタが合う必要があると考えられていますのオブジェクトです。チェックして頂ければと思い、その長さでご覧の場合は任意の要素が存在します。JavaScript 0 == false, が得られないときには、いくつかの 0 コードです。

if($("selector").length){
   //code in the case
} 

この例では異なる状況をチェックする場合に要素が存在するカメラを用いた場合には、jQueryのセレクタが動作しない場合がありなので配列を返します。

var a = null;

var b = []

var c = undefined ;

if(a) { console.log(" a exist")} else { console.log("a doesn't exit")}
// output: a doesn't exit

if(b) { console.log(" b exist")} else { console.log("b doesn't exit")}
// output: b exist

if(c) { console.log(" c exist")} else { console.log("c doesn't exit")}
// output: c doesn't exit

解決

if($("#xysyxxs").length){ console.log("xusyxxs exist")} else { console.log("xusyxxs doesnn't exist") }
//output : xusyxxs doesnn't exist

if($(".xysyxxs").length){ console.log("xusyxxs exist")} else { console.log("xusyxxs doesnn't exist") }
    //output : xusyxxs doesnn't exist

いまで以上 0 のように $(selector).length > 0, $(selector).length でも、これまでにないの存在をチェック。いとは思わないがある関数を書くことでしたい場合は、なにもあります。

if($(selector).length){
  // true if length is not 0
} else {
  // false if length is 0
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top