2010-09-03 4 views
4

Je n'arrive pas à ajouter d'ID aux boutons dans une boîte de dialogue créée par jQuery. Je peux sélectionner les boutons après la boîte de dialogue est déclarée par sélecteurs comme suit:Comment utiliser jQuery pour ajouter des ID aux éléments?

var buttons = $("#dialog").siblings(".ui-dialog-buttonpane").find("button"); 

mais lorsque je tente de faire:

buttons[0].attr('id', 'someId'); 

-je obtenir:

 
TypeError: Object #<an HTMLButtonElement> has no method 'attr' 

Toutes les suggestions? Je ne vois rien dans les documents jQuery qui implique que attr() ne devrait pas fonctionner sur les boutons.

+0

Je suis d'accord avec @jigfox - actuellement vous avez 13 questions ont et n'ont pas accepté de réponse à * aucune * d'entre eux. – Tomalak

+0

désolé à ce sujet - j'ai toujours en quelque sorte oublié. le réparer maintenant. – subrama6

Répondre

10

Oui:

$(buttons[0]).attr('id', 'someId'); 

la méthode attr() est déclarée sur des objets jQuery, mais buttons[0] vous donne un objet standard DOM (de type HTMLButtonElement dans ce cas). Les objets jQuery sont des tableaux augmentés d'objets DOM, donc l'indexation en eux vous donne toujours les objets DOM originaux.

Puisque jQuery n'ajoute pas de méthodes aux objets DOM eux-mêmes, vous devez d'abord envelopper l'objet DOM dans un objet jQuery pour accéder à ces méthodes.

EDIT Puis à nouveau ... il n'y a pas besoin d'utiliser jQuery du tout pour cette tâche.

buttons[0].id = 'someId'; 
+0

+1 ne pouvait pas être plus simple. – GenericTypeTea

+0

est parfaitement logique - une bonne explication. merci beaucoup – subrama6

+0

@GenericTypeTea: Oh oui, il y a un moyen plus simple. Voir ma modification. – Tomalak

Questions connexes