Javascript Variables Globales ne fonctionne Pas comme prévu. De l'aide?
Je suis nouveau sur le Javascript. Je suis confronté à un problème avec des variables globales. Je ne peux pas comprendre pourquoi les variables globales ne sont pas de travail que le code est ok. Merci de m'Aider à résoudre ce problème.
Je vais breifly expliquer le premier code.J'ai un peu de texte sur une page qui n'modifications de champ de texte lorsque l'utilisateur clique dessus. Quand j'définir les variables à l'intérieur des fonctions du corps le code commence à bien fonctionner. Lorsque ces variables sont définies globalement comme dans le code suivant, la console affiche cette erreur: la variable n'est pas définie. Voici mon code:
<!DOCTYPE HTML>
<html>
<head>
<title>Span to Text Box - Demo - DOM</title>
<script type="text/javascript" language="javascript">
var textNode = document.getElementById('text');
var textValue = textNode.firstChild.nodeValue;
var textboxNode = document.getElementById('textbox');
var doneButton = document.getElementById('done');
function change()
{
textboxNode.setAttribute('value', textValue);
textNode.style.display = 'none';
textboxNode.setAttribute('type','text');
doneButton.setAttribute('type','button');
}
function changeBack()
{
textNode.firstChild.nodeValue = textboxNode.value;
textNode.style.display = 'block';
textboxNode.setAttribute('type', 'hidden');
doneButton.setAttribute('type','hidden');
}
</script>
</head>
<body>
<p id="text" onClick="change()">Click me!</p>
<form onSubmit="return false;">
<input type="hidden" id="textbox" />
<input type="hidden" id="done" onClick="changeBack()" value="Done" />
</form>
</body>
</html>
S'Il Vous Plaît Aider!
Merci à l'Avance.
merci j'ai lu l'article que vous avez recommandé
CE QUI DEVRAIT TOUT DE JAVA-SCRIPT PROGRAMMEUR SAIT? Je veux partager cette plus utiles post avec tous mes Amis ici. Voici le Lien: stackoverflow.com/q/2628672/1067051
OriginalL'auteur Naeem Ul Wahhab | 2011-11-26
Vous devez vous connecter pour publier un commentaire.
Comme Adam l'a dit, le problème est que vous êtes en cours d'exécution javascript sur le document avant que le document a été chargé. Il y a un certain nombre de façons de corriger cela, mais la plus simple est de simplement déplacer votre code javascript à la fin du corps de sorte que le document a déjà été analysé et est prêt avant que votre code s'exécute comme ceci:
OriginalL'auteur jfriend00
L'erreur est probablement causée par l'accaparement des nœuds DOM, avant qu'ils soient prêts:
Il est probable retour soit
null
ouundefined
depuis que DOM élément n'a pas encore été créé.Mettre ce script à la fin de votre corps devrait résoudre votre problème.
Ou, si vous souhaitez utiliser jQuery, vous pouvez faire tout cela dans
Je veux juste donner OP autant d'options que je peux. Je déteste être le mec qui recommande jQuery pour tout 🙂
Je suis d'accord avec cette réponse. Ce n'est pas la variable globale aspect, c'est votre moment.
mon plaisir. jQuery est une bibliothèque incroyable qui simplifie beaucoup de fastidieux choses. Mais si vous êtes à la de l'ajouter à votre projet pour résoudre ce problème unique, n'oubliez pas, vous pouvez également le fixer en déplaçant simplement votre script en bas de votre
<body>
non, ce n'est pas le résoudre. Le problème, c'est que votre élément DOM n'est pas prêt, donc document.getElementById retourne la valeur null. Pour corriger cela, vous pouvez soit déplacer le script pour le bas du corps, de sorte qu'il sera exécuté après que le corps est analysée, et le dom est prêt, ou à l'aide de jQuery construction décrite ci-dessus.
OriginalL'auteur Adam Rackis