jQuery de travail dans la console, mais pas dans le code d'origine
J'ai essayé le code suivant pour ajouter href de la balise à l'intérieur d'un td. il fonctionne très bien alors que je n'en console. Mais quand j'ai essayer la même chose dans mon code ça ne fonctionne pas. Quelqu'un peut-il me dire la raison?
<script>
$("table tbody tr td a").attr('href','http://www.google.com');
</script>
<table>
<tr>
<td><a >Hai</a></td>
</tr>
</table>
OriginalL'auteur Midhun Mathew | 2013-07-15
Vous devez vous connecter pour publier un commentaire.
Utilisation document.Prêt()
Vous devez vous assurer que le document est déjà chargé avant d'essayer de manipuler le DOM.
Plus d'infos: http://api.jquery.com/ready/
Donc...la récompense lui, la réponse?
Merci pour le partage de cette solution! Je n'ai pas utiliser jQuery dans quelques années, et j'ai eu des problèmes avec un code qui n'était pas en cours d'exécution parce que j'ai oublié de $(document).prêt()
OriginalL'auteur Guilherme de Jesus Santos
L'élément n'existe pas lorsque votre jquery est en cours d'exécution. Vous avez besoin de mettre vos gestionnaires à l'intérieur d'un prêt de la fonction.
$(function() {});
est le raccourci pour$(document).ready(function() {});
OriginalL'auteur Jeremy Gallant
Le JS est tir avant le html est créé.
OriginalL'auteur Stefan
le mettre dans un prêt de la section :
OriginalL'auteur user
Votre code s'exécute avant que le DOM est prêt et que l'élément existe réellement, essayez de cette façon:
La raison pour laquelle il travaille sur console est parce que le
<a>
élément existe déjà lorsque vous exécutez votre code...JSBin Démo
OriginalL'auteur DarkAjax