2011-07-27 4 views
8

Im recherchant l'élément qui fournit le nom d'un parent. Ce:jquery Comment obtenir le nom du parent

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

dit juste « DIV », mais je dois le vrai nom d'un élément. Merci

+0

C'est parce qu'elle renvoie un objet. Si vous voulez un cours ou un ID, spécifiez-le. – Mitch

+1

Les éléments div n'ont pas d'attribut de nom, mais la plupart des navigateurs vous permettent d'en ajouter un. Comme il s'agit d'un attribut non standard, vous devrez utiliser * attr * de jQuery ou la méthode DOM * getAttribute * pour l'obtenir: 'this.parentNode.getAttribute ('name')'. – RobG

Répondre

11

Effectuez les opérations suivantes (alertes le nom de la balise, puis le nom réel):

J'utilisé $(a[0]).attr('name');

par exemple

$('.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

Utilisez a.attr ('nom') au lieu de $ (a [0]). Attr ('nom') – Darm

+0

Merci Darm Ret, je l'ai ajouté à ma réponse. –

0

si vous voulez obtenir l'attribut "name", vous devez utiliser .attr() $('.Item').click(function(){ var a = $(this).parent(); alert(a[0].attr("name")); });

1

Essayez:

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

Je pense qu'il veut dire div, entrée, span, nav ... plutôt que name = "this" – Sparkup

+0

Je n'ai pas voté bas. – Sparkup

1

Utilisation:

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

Vous pouvez simplement utiliser Javascript simple pour cela - dans ce cas, il est encore plus simple (je pense):

$('.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 
}); 

Ma source: JavaScript DOM. Jetez un coup d'oeil, et aidez-vous.

Édition: code enveloppé dans le gestionnaire d'événements click.

1

var a = $ (this) .parent(); alert (a [0] .nodeName.toLowerCase()); // Nom de la balise

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