Foros del Web » Programando para Internet » Jquery »

Problema con data() -> devuelve undefined

Estas en el tema de Problema con data() -> devuelve undefined en el foro de Jquery en Foros del Web. Buenas gente! Escribo porque estoy con un problema que no encuentro manera de solucionar. Estoy haciendo una aplicación y estoy usando localstorage, tomé la base ...
  #1 (permalink)  
Antiguo 30/07/2013, 08:21
DmD
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires, Argentina
Mensajes: 73
Antigüedad: 16 años, 2 meses
Puntos: 1
Problema con data() -> devuelve undefined

Buenas gente!
Escribo porque estoy con un problema que no encuentro manera de solucionar. Estoy haciendo una aplicación y estoy usando localstorage, tomé la base de un tutorial pero cuando lo intento adaptar a mi código no me funciona..

Lo que tengo es:

Código:
$objCuerpoTablaContactos.append(
     $('<tr>').append(
     $('<td>',{
        text : clave,
        align : 'left'
     }),
     $('<td>',{
       text : valor,
       align : 'left'
     }),
     $('<td>',{
       align : 'center',
       width : 60
     }).append('<input type="button" onclick="eliminarRegistro()" value="Eliminame" class="'+clave+'" />').data('contactoparaeliminar',clave)
     )
);
Función eliminar registro:
Código:
function eliminarRegistro(){
     var strTelefonoAEliminar = $(this).data('contactoparaeliminar');
     alert(strTelefonoAEliminar); //return undefined
     if(confirm('¿Desea eliminar el contacto seleccionado?')){
     localStorage.removeItem(strTelefonoAEliminar);
     muestraTodo();
}
}
El problema específico es que estoy intentando eliminar un elemento de un listado, y con el .data le paso la clave y en la función intento recuperarla para saber que elemento eliminar pero me devuelve undefined el alert del var strTelefonoAEliminar = $(this).data('contactoparaeliminar');

Qué estoy haciendo mal? :S

Saludos,
Daniela.
  #2 (permalink)  
Antiguo 30/07/2013, 10:54
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 6 meses
Puntos: 839
Respuesta: Problema con data() -> devuelve undefined

El dato lo estás guardando en el td, podrías probar con $(this).parent().data(...)
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 30/07/2013, 11:02
DmD
 
Fecha de Ingreso: agosto-2008
Ubicación: Buenos Aires, Argentina
Mensajes: 73
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Problema con data() -> devuelve undefined

Gracias por contestar David, acabo de probar y nada, sigue undefined.

Por las dudas, la función completa donde se crea el botón es:

Código:
function muestraTodo(){
        var area = document.getElementById('almacenamientoLocal');
        area.innerHTML = '';
       
        $objCuerpoTablaContactos = $('#tblTablaContactos').find('tbody');
        $objCuerpoTablaContactos.empty();
       
        for (var i=0; i<storage.length; i++) {
            var clave = storage.key(i);
            var valor = storage.getItem(clave);
           
            $objCuerpoTablaContactos.append(
                    $('<tr>').append(
                        $('<td>',{
                            text    : clave,
                            align    : 'left'
                        }),
                        $('<td>',{
                            text    : valor,
                            align    : 'left'
                        }),
                        $('<td>',{
                            align    : 'center',
                            width    : 60
                        }).append('<input type="button" onclick="eliminarRegistro()" value="Eliminame" class="'+clave+'" />').data('contactoparaeliminar',clave)
                    )
                );
           
        }
}
Alguna otra idea? x_X

Etiquetas: localstorage, undefined
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 12:05.