2011-05-31 15 views
8

Cómo verificar si existe un elemento, y si lo hace, quiero que insertAfter no sea válido.Y si el elemento no existe, entonces quiero que insertAfter sea valib pero solo una vez.Mi objetivo es enviar solo una vez insertAfter si un elemento no existe y si no envía nadaInsertar JqueryDespués solo una vez si el elemento existe

+1

Insertar qué elemento y qué elemento en respuesta a qué evento? ¿Qué has intentado y qué salió mal? –

Respuesta

7

Simplemente haga una verificación de longitud. Suponiendo que tiene un selector #sel, y desea insertar algo después de él.

var foo = 'something'; 
if ($('#sel').length) { 
    //do something if elem is present 
} else { 
    $('#sel').insertAfter(foo); 
} 
+1

¡eso es genial! +1 –

2

Puede verificar si un elemento existe marcando la propiedad length de cualquier objeto jQuery.

1

Coloque el siguiente, tras su modificación a sus necesidades, dentro del controlador de eventos de su elección:

if (!$('elementID').length) { 
    $('<div id="elementID" />').insertAfter('elementSelector'); 
} 

Por ejemplo:

$('elementSelector').once().click(
    function(){ 
     if (!$('elementID').length) { 
      $('<div id="elementID" />').insertAfter('elementSelector'); 
     } 
    }); 

Referencias:

+0

Creo que debería usar uno() en lugar de una(). –

Cuestiones relacionadas