2011-09-23 51 views
12

Duplicar posible:
Finding whether the element exists in whole html pageisset en jQuery?

me gustaría hacer algunas cosas:

HTML:

<span id="one">one</span> 
<span id="two">two</span> 
<span id="three">three</span> 

JavaScrip t:

if (isset($("#one"))){ 
    alert('yes'); 
} 

if (isset($("#two"))){ 
    alert('yes'); 
} 

if (isset($("#three"))){ 
    alert('yes'); 
} 

if (!isset($("#four"))){ 
    alert('no'); 
} 

VIVO:

http://jsfiddle.net/8KYxe/

¿Cómo puedo hacer eso?

+0

¿Qué debe establecerse en estos tramos? –

+2

¿Qué significa 'isset'? El 'lapso 'tiene algo de contenido? ¿Existe? –

Respuesta

22
if (($("#one").length > 0)){ 
    alert('yes'); 
} 

if (($("#two").length > 0)){ 
    alert('yes'); 
} 

if (($("#three").length > 0)){ 
    alert('yes'); 
} 

if (($("#four")).length == 0){ 
    alert('no'); 
} 

Esto es lo que usted necesita :)

+3

Si no se encuentra la identificación, lanzará el error – Minimihi

+1

'if (!! $ ('# one')) {alert ('yes'); } '- y así sucesivamente. ¡Esto es! operador doble no en JS. –

8
function isset(element) { 
    return element.length > 0; 
} 

http://jsfiddle.net/8KYxe/1/


O, como una extensión de jQuery:

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

// later ... 
if ($("#id").exists()) { 
    // do something 
} 
+0

@Tomalak - Gracias por la edición :) –

+0

De nada. ;) – Tomalak

-2

puede simplemente usar esto:

if ($("#one")){ 
    alert('yes'); 
} 

if ($("#two")){ 
    alert('yes'); 
} 

if ($("#three")){ 
    alert('yes'); 
} 

if ($("#four")){ 
    alert('no'); 
} 

Lo siento, mi error, no lo hace trabajo.

+3

'$()' siempre devuelve un objeto jQuery, que se evalúa como 'true'. –

+0

No funciona, jQuery siempre devuelve el objeto jQuery. – Usman

+1

@FelixKling: Es mejor copiar este comentario ... Tal vez haya una tercera persona respondiendo de esta manera ...;) –

17

Puede utilizar length:

if($("#one").length) { // 0 == false; >0 == true 
    alert('yes'); 
} 
+3

No es necesario tener el> 0 allí ya que 0 se evalúa como falso de todos modos. –

+0

Esto indica si existe el elemento con dicha ID. Sin embargo, si desea averiguar si existe valor para este elemento, puede hacer 'if ($ (" # one "). Val()) {...}' –

+2

@Richard: Correcto, pero '> 0' es más expresivo y por lo tanto más fácil de leer. Puede que no quede inmediatamente claro para todos que '0' se evalúa como' falso'. –

-2
function el(id) { 
    return document.getElementById(id); 
} 

if (el('one') || el('two') || el('three')) { 
    alert('yes'); 

} else if (el('four')) { 
    alert('no'); 
} 
Cuestiones relacionadas