2011-07-27 41 views
8

buscando el elemento que proporciona el nombre de un padre. Esto:jquery cómo obtener el nombre del padre

  $('.Item').click(function(){ 
       var a = $(this).parent(); 
       alert(a[0].tagName); 
      }); 

dice "DIV", pero necesito el nombre real de un Elemento. Gracias

+0

Esto se debe a que devuelve un objeto. Si quieres una clase o un ID, especifica. – Mitch

+1

Los elementos div no tienen un atributo de nombre, pero la mayoría de los navegadores le permiten agregar uno. Debido a que es un atributo no estándar, deberá usar jQuery's * attr * o el método DOM * getAttribute * para obtenerlo: 'this.parentNode.getAttribute ('name')'. – RobG

Respuesta

11

Intente lo siguiente (Alerta al nombre de la etiqueta, y luego el nombre real):

que utilizan $(a[0]).attr('name');

por ejemplo,

$('.Item').click(function() { 
     var a = $(this).parent(); 
     alert(a[0].nodeName.toLowerCase()); //Tag Name 

     alert($(a[0]).attr('name')); //Attribute (real) name 
     //OR 
     alert(a.attr('name')); //Attribute (real) name 
    }); 
+3

Use a.attr ('nombre') en lugar de $ (a [0]). Attr ('nombre') – Darm

+0

Gracias Darm Ret, lo he agregado a mi respuesta. –

0

si desea obtener el atributo "nombre" se debe utilizar .attr() $('.Item').click(function(){ var a = $(this).parent(); alert(a[0].attr("name")); });

1

Probar:

var a = $(this).parent().attr('name'); 
+0

Creo que quiere decir div, input, span, nav ... en lugar de name = "this" – Sparkup

+0

No voté. – Sparkup

1

Uso:

$('.Item').click(function(){ 
      var a = $(this).parent(); 
      alert(a.attr('name')); 
     }); 
1

Se podía utilizar sin formato Javascript para esto - en este caso es aún más simple (creo):

$('.Item').click(function() { 
    var parent = this.parentElement; 
    var tagName = parent.tagName; // tag name, like 'div', 'a', etc... 
    var name = parent.name // value of the 'name' attribute 
}); 

Mi fuente: JavaScript DOM. Échale un vistazo y ayúdate a ti mismo.

Editar: código envuelto dentro del controlador de eventos click.

1

var a = $ (this) .parent(); Alerta (a [0] .nodeName.toLowerCase()); // Nombre de etiqueta

alert($(a[0]).attr('name')); //Attribute (real) name 
    //OR 
    alert(a.attr('name')); //Attribute (real) name getting issue on this code 
Cuestiones relacionadas