2011-04-24 1 views
1

je la fonction de rappel suivante lorsque vous utilisez le plugin étoile jQuery:valeur de l'attribut jQuery DOM

$('.star').rating({ 
    callback: function (value, link) { 
     { 
      if (response.session) { 
       $.post("update.php", { 
        uid: response.session.uid, 
        mid: $('.star').attr('name'), 
        val: value 
       }); 
       alert($('.star').attr('name')); 

      } 
     }); 
} 
}); 

et le code html suivant:

<input name="star2" type="radio" class="star"/> 
<input name="star2" type="radio" class="star"/> 
<input name="star2" type="radio" class="star" checked="checked"/> 
<input name="star2" type="radio" class="star"/> 
<input name="star2" type="radio" class="star"/> 

comment puis-je obtenir le nom de la jQuery? J'ai essayé de faire .attr comme ci-dessus et il revient indéfini. J'ai essayé de faire $($this).attr('name') et il renvoie le nom de la boîte de fantaisie jquery ..

+0

try '$ (this). attr ('name') ' – Yeameen

+0

@Yeameen qui ne fonctionnerait pas à moins que le plugin d'évaluation fonctionne dans le contexte de l'événement (dont je doute) – JohnP

Répondre

1
$('.star') 

retourne une collection d'objets jQuery, donc vous devriez itérer il par exemple:

$('.star').each(function() { 
    alert($(this).attr('name')); 
}); 

l'élément contrôlé est trouvé par:

$('.star:checked').attr('name'); 

mise à jour, (en réponse aux commentaires) pour plusieurs groupes:

si j'ai deux séries d'étoiles

$('.star:checked').each(function() { 
    alert($(this).attr('name')); 
}); 
+0

que se passe-t-il si j'ai deux jeux d'étoiles ... comment puis-je obtenir le nom de l'étoile sur laquelle on clique? mon exemple ci-dessus montre seulement un ensemble de notes, alors qu'en réalité dans une page, vous pouvez avoir plus de 1 étoiles ... Je veux connaître le nom de l'étoile qui est cliquée .. – adit

+0

mis à jour la réponse pour ce –

+0

qui sera imprimer tout celui qui est coché? mais pas nécessairement celui sur lequel j'ai cliqué – adit

1
var nameOfCheckedStar = $('.star:checked').attr('name'); 

Je suppose que vous voulez que le nom de l'étoile vérifiée

+0

Je veux obtenir le na cliqué moi, pas forcément cochée ... il peut y avoir plusieurs étoiles cochées – adit

+0

bien vu que c'est un groupe radio, celui qui est coché sera toujours celui que tu as cliqué :) – JohnP

+0

Comme je l'ai mentionné plus haut je peux avoir plusieurs étoiles avec le même class, star ... faire ce que vous avez mentionné ci-dessus retournera le premier ensemble qui est coché ... même si j'ai cliqué sur set-4, il retournera toujours le premier – adit