Foros del Web » Programando para Internet » Jquery »

recuperar id del elemento con JQuery

Estas en el tema de recuperar id del elemento con JQuery en el foro de Jquery en Foros del Web. Hola Alguien me podría enseñar como hago para saber el id del div que deseo eliminar , donde dice "#id_XXX" debería decir el id del ...
  #1 (permalink)  
Antiguo 09/11/2011, 20:31
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
recuperar id del elemento con JQuery

Hola Alguien me podría enseñar como hago para saber el id del div que deseo eliminar , donde dice "#id_XXX" debería decir el id del div en cuestión



Código Javascript:
Ver original
  1. $(".eliminar").click(function(){
  2.             $("#id_XXX").remove();
  3.             })
Código HTML:
<div id="uno">1</div>        
<div id="dos">2</div>        
<div id="tres">3</div>        
<div id="cuatro">4</div> 

       
   <a href="#"  class="eliminar">Eliminar div 1</a>         
   <a href="#"  class="eliminar">Eliminar div 2</a>         
   <a href="#"  class="eliminar">Eliminar div 3</a>         
   <a href="#"  class="eliminar">Eliminar div 4</a> 
Gracias
__________________
la la la
  #2 (permalink)  
Antiguo 09/11/2011, 21:07
Avatar de newboy_master  
Fecha de Ingreso: enero-2008
Ubicación: Granada
Mensajes: 882
Antigüedad: 16 años, 10 meses
Puntos: 46
Respuesta: recuperar id del elemento con JQuery

Primero te pongo una solución alternativa usando una pequeña función:

Código Javascript:
Ver original
  1. function elimDiv(id) {
  2.     $("#"+id).remove();
  3. }

Código HTML:
Ver original
  1. <div id="uno">1</div>        
  2. <div id="dos">2</div>        
  3. <div id="tres">3</div>        
  4. <div id="cuatro">4</div>
  5.        
  6. <a href="#"  class="eliminar" onclick="elimDiv('uno'); return false">Eliminar div 1</a>        
  7. <a href="#"  class="eliminar" onclick="elimDiv('dos'); return false">Eliminar div 2</a>        
  8. <a href="#"  class="eliminar" onclick="elimDiv('tres'); return false">Eliminar div 3</a>        
  9. <a href="#"  class="eliminar" onclick="elimDiv('cuatro'); return false">Eliminar div 4</a>

Y ahora una solución que a lo mejor te interesa más:

Código Javascript:
Ver original
  1. $(document).ready( function(){
  2.  
  3.     $(".eliminar").click(function(){
  4.         var div = $(this).attr("rel");                       
  5.         $("#"+div).remove();
  6.     })
  7.  
  8. });

Código HTML:
Ver original
  1. <div id="uno">1</div>        
  2. <div id="dos">2</div>        
  3. <div id="tres">3</div>        
  4. <div id="cuatro">4</div>
  5.        
  6. <a href="#"  class="eliminar" rel="uno">Eliminar div 1</a>        
  7. <a href="#"  class="eliminar" rel="dos">Eliminar div 2</a>        
  8. <a href="#"  class="eliminar" rel="tres">Eliminar div 3</a>        
  9. <a href="#"  class="eliminar" rel="cuatro">Eliminar div 4</a>

Hay muchas opciones, es cuestión de pensar cuál es la mejor. No sé si será realmente correcto usar el atributo "rel" para ese fin pero ayuda con tu problema.

Salu2.
__________________
@jslirola - Programador Web Freelance.
  #3 (permalink)  
Antiguo 09/11/2011, 21:13
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: recuperar id del elemento con JQuery

Ah pero entonces si yo le pusiera un id al link así:

<a href="#" id="id_1" class="eliminar" rel="uno">Eliminar div 1</a>

y un id a los div así:

<div id="uno_id_1">1</div>


podría acceder al id asií?


var div = $(this).attr("id");
$("#div_"+div).remove();
__________________
la la la
  #4 (permalink)  
Antiguo 09/11/2011, 21:22
Avatar de newboy_master  
Fecha de Ingreso: enero-2008
Ubicación: Granada
Mensajes: 882
Antigüedad: 16 años, 10 meses
Puntos: 46
Respuesta: recuperar id del elemento con JQuery

Si quieres usar ids sería así:

var div = $(this).attr("id");
$("div#"+div).remove();

<div id="id_1">1</div>
<a href="#" id="id_1" class="eliminar">Eliminar div 1</a>

Haciendo que coincidan, a no ser que quieras seguir un patron, como un inicio común o algo. El ejemplo que me has puesto no funcionaría.

Primero por que no coincide el ID del enlace con el del div, y segundo por que el selector en jQuery lo has puesto mal, en tu caso seleccionas un elemento con el id #div_[lo_que_valga_id] y no tienes ningún div que coincida.

Salu2.
__________________
@jslirola - Programador Web Freelance.
  #5 (permalink)  
Antiguo 09/11/2011, 21:38
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: recuperar id del elemento con JQuery

Ok me equivoqué al escribir pero la idea es esa.

Ahora tengo otro problema, resulta que estos links para Elimiar los creo dinamicamente también con jQuery, pero al presionarlos no hacen nada, pero si lo escribo a mano el el código si funciona.
Hay alguna razon por la que los links o botones generados dinamicamente con jQuery no realicen la llamada a la función??????
__________________
la la la
  #6 (permalink)  
Antiguo 09/11/2011, 21:56
Avatar de newboy_master  
Fecha de Ingreso: enero-2008
Ubicación: Granada
Mensajes: 882
Antigüedad: 16 años, 10 meses
Puntos: 46
Respuesta: recuperar id del elemento con JQuery

Se me ocurre que primero tengas declarada la función manejadora del evento "click" y luego los generes, entonces no se reconoce.

Tienen que generarse los enlaces y luego la función "click". Si no es eso publica el código y lo reviso.

Salu2.
__________________
@jslirola - Programador Web Freelance.
  #7 (permalink)  
Antiguo 09/11/2011, 23:26
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: recuperar id del elemento con JQuery

Ok pongo el código a ver si podés encontrar el error

Desde ya muchas gracias:

Código Javascript:
Ver original
  1. <script type="text/javascript" src="lib/jquery-1.6.4.min.js"></script>
  2. <script type="text/javascript">
  3.     $(document).ready(function(){
  4.         var contador = 1;
  5.         $(".eliminar").click(function(){
  6.             //$("#id_"+$(this).attr("id")).remove();
  7.             alert("hola"+$(this).attr("id"));
  8.            
  9.         })
  10.        
  11.        
  12.         $("#agregar").click(function(){
  13.        
  14.        
  15.  
  16.             $("#contactos_div").append("<div id='id_id_"+contador+"' > <a href='javascript:void(0);' id='id_"+contador+"' class='eliminar'>este no funciona</a></div>"),contador++
  17.            
  18.         })         
  19. })
  20. </script>
Código HTML:
<a href="javascript:void(0);" id="agregar" style="text-decoration:none">Agregar</a>
<div id='id_id_1' ><a href='javascript:void(0);'id='id_1'  class='eliminar'>Este funciona</a></div>
<div id="contactos_div"></div> 
__________________
la la la
  #8 (permalink)  
Antiguo 10/11/2011, 08:50
Avatar de newboy_master  
Fecha de Ingreso: enero-2008
Ubicación: Granada
Mensajes: 882
Antigüedad: 16 años, 10 meses
Puntos: 46
Respuesta: recuperar id del elemento con JQuery

El problema ahí es que dices "en cuanto cargue la página, al pinchar en los elementos con la clase eliminar que muestre una alerta", y no existen elementos que cumplan ese requisito ya que se generan dinámicamente.

Prueba a ponerlo así:
Código Javascript:
Ver original
  1. $(".eliminar").live('click', function(e){
  2.             //$("#id_"+$(this).attr("id")).remove();
  3.             alert("hola"+$(this).attr("id"));
  4. })

Salu2.
__________________
@jslirola - Programador Web Freelance.
  #9 (permalink)  
Antiguo 10/11/2011, 09:01
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: recuperar id del elemento con JQuery

Impecable! ahora funciona de lujo, pero me surgen preguntas, como por ejemplo que es el parametro e en la funcion

function(e)

y otra pregunta que imagino su respuesta
que hace el método .live
supongo que hace que funcionen los elementos que se vallan creando en vivo y en directo jeje, no?
__________________
la la la
  #10 (permalink)  
Antiguo 10/11/2011, 09:12
Avatar de newboy_master  
Fecha de Ingreso: enero-2008
Ubicación: Granada
Mensajes: 882
Antigüedad: 16 años, 10 meses
Puntos: 46
Respuesta: recuperar id del elemento con JQuery

Lo puedes quitar, se me ha pasado, sirve para manejar un evento, si luego se usa por ejemplo: e.preventDefault(); se evitaría ejecutar la acción por defecto de los elementos seleccionados.

http://api.jquery.com/event.preventDefault/

live() te permite seleccionar elementos de ahora y el futuro, por lo que reconoce los elementos generadores posteriormente a la carga de la página.

Leyendo un artículo he visto que se recomienda usar .delegate() en vez de .live() asi que mejor déjalo de esta forma:

Código Javascript:
Ver original
  1. $("#contactos_div").delegate('.eliminar','click', function(){
  2.     //$("#id_"+$(this).attr("id")).remove();
  3.     alert("hola"+$(this).attr("id"));
  4. })
Y aquí el artículo citado:
http://www.etnassoft.com/2011/05/12/...a-jquery-live/

Salu2.
__________________
@jslirola - Programador Web Freelance.
  #11 (permalink)  
Antiguo 10/11/2011, 09:49
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: recuperar id del elemento con JQuery

Ok, funciona perfecto,y si, yo también había oído hablar de delegate, pero como recién empiezo con esto de jQuery me está costando un poco., soy más del php que del javascript jeje.
Te agradezco mucho tu ayuda y tus explicaciones tan bien planteadas.

Saludos
Suerte
__________________
la la la

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:14.