Vai jQuery ir pieejama funkcija "exists"?

Kā pārbaudīt elementa esamību jQuery?

Pašreizējais kods, kas man ir, ir šāds:

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

Vai ir kāds elegantāks veids, kā to izdarīt? Varbūt kāds spraudnis vai funkcija?

Jā!

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

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

Tas ir atbilde uz: Herding Code podkāsts ar Džefu Atvudu

Komentāri (11)

Ja izmantojat

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

jūs liktu domāt, ka ķēde ir iespējama, lai gan tā nav.

Tas būtu labāk:

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

Alternatīvi, no bieži uzdotajiem jautājumiem:

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

Varat izmantot arī šādu. Ja jQuery objektu masīvā nav vērtību, tad, iegūstot pirmo elementu masīvā, tiktu atgriezta nenoteikta vērtība.

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

Varat izmantot:

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

Iespējams, nedaudz elegantāk.

Komentāri (5)