2009-02-16 6 views
1

J'ai dans mon HTMLhref jquery retours non défini

<a class="deleteLink" href="system/id">link</a> 

Ensuite, en utilisant jQuery, je lance ceci dans $ (document.ready (fonction()

alert($("a.deleteLink").attr("href")); 

Ce qui montre système/id

Mais l'exécution de cette:

alert($("a.deleteLink").href); 

Affiche non définie

Si j'ajoute un identifiant à une étiquette comme celui-ci

<a id="myId" class="deleteLink" href="system/id">link</a> 

Puis

alert(myId.href); 

montre http://localhost/system/id qui est ce que je veux obtenir de jQuery (donc je peux faire quelque chose comme

$.post($("a.deleteLink").href); 

Quelqu'un peut-il m'aider à obtenir la valeur href complète de jQuery (1.2.6) s'il vous plaît?

+0

Eh bien, votre premier exemple href fonctionne .. pourquoi voulez-vous faire avec .href alors? Aussi la deuxième partie de votre question ne semble pas avoir quelque chose à voir avec la première partie. Qu'est-ce que 'myId' (la variable)? Un objet jQuery? – okoman

Répondre

13

$ ("...") retourne un objet jQuery (également appelé "mis bien emballés"). Le jeu enveloppé n'a pas d'attribut href. Si vous faites ceci:

alert($("a.deleteLink")[0].href); 

Il devrait renvoyer l'attribut href correctement. Lorsque vous manipulez "myId", vous avez affaire à un objet élément DOM. Tout à fait différent d'un ensemble emballé. L'opérateur d'index que j'ai utilisé là est court pour get (0) et cela renvoie un élément de l'ensemble enveloppé.

+0

Note: l'élément retourné soit par l'indexation directe des objets dans l'ensemble encapsulé, soit à l'aide de la méthode .get() sera un objet DOM pur, c'est pourquoi vous pouvez faire "[element] .href". – roosteronacid

4

Maintenant, je vois ce que vous voulez faire.

Essayez ceci:

alert($("a.deleteLink")[0].href); 
Questions connexes