2011-05-17 4 views
1

Le but ultime est de retourner une page affichant la phrase suivanteScript produit des erreurs, je ne peux pas trouver

une fois il y avait un nom GENRE NOM
qui avait un PET nommé PET NOM.

<SCRIPT language="JavaScript"> 

var heroGender, heroName, petType, petName; 

heroGender = window.prompt('Is the hero female or male? Enter F or M', 'F'); 

heroName = window.prompt('What is the hero\'s name?',''); 

petType = window.prompt('What type of pet does the hero have?',''); 

petName = window.prompt('What is name of the pet?',''); 

    document.write('Once upon a time there was a '); 

if (heroGender == ('F')) 
{ 
    document.write('girl'); 
} 
else 
{ 
    document.write('boy'); 
} 

document.write('Once upon a time there was a ' + heroGender + ' named ' + heroName '.''<BR>' + 
            heroName + ' had a ' + petType + ' called ' + petName + '.'); 

</SCRIPT> 
+0

Pouvez-vous expliquer ce qui a mal tourné? Nous voyons du code, mais à moins de le copier et de l'exécuter, nous ne savons pas ce qui a mal tourné. –

+2

Un problème évident est que vous imprimez "Il était une fois il y avait un" ** deux fois **. – Pointy

+1

Vous code ''. ''
'' ce qui est une syntaxe peu incorrecte. – pimvdb

Répondre

2

Je pense que vous avez eu quelques fautes de frappe dans votre document.write.You're finale manque un « + » après heroName ... et vous avez des document.writes faisant double emploi.

Voici ce que je pense devrait être votre code final:

var heroGender, heroName, petType, petName; 
heroGender = window.prompt('Is the hero female or male? Enter F or M', 'F'); 
heroName = window.prompt('What is the hero\'s name?',''); 
petType = window.prompt('What type of pet does the hero have?',''); 
petName = window.prompt('What is name of the pet?',''); 

if (heroGender == ('F')) { heroGender ='girl'; } else { heroGender = 'boy'; } 
document.write('Once upon a time there was a ' + heroGender + ' named ' + heroName + '. ' + heroName + ' had a ' + petType + ' called ' + petName + '.'); 
+0

Merci - c'est exactement ce que je cherchais. – ZenProcrastination

7

Alors que votre attente pour les livres!

Apprenez à partir de Mozilla Developer Centre!

Exemple:

Example

Version fixe

document.write(
    'Once upon a time there was a ' + heroGender + 
    ' named ' + heroName + '.' + '<BR>' + heroName + 
    ' had a ' + petType + ' called ' + petName + '.'); 

version brisé

Vous étiez absent à + symboles

document.write(
    'Once upon a time there was a ' + heroGender + 
    ' named ' + heroName /* + */ '.' /* + */ '<BR>' + heroName + 
    ' had a ' + petType + ' called ' + petName + '.'); 

Essayez d'utiliser

  • Firefox et Firebug et son onglet de la console (appuyez sur F12)
  • IE9 et la construction dans la console (appuyez sur F12. Assurez-vous que la console est ouverte puis rafraîchir).
  • Chrome et la construction dans la console (Appuyez sur Ctrl + Maj + J)

Pour surveiller les messages d'erreur.

Si c'est trop d'effort essayez

window.onerror = function(e) { 
    alert(e.message); 
} 

est ici une « amélioration » des normes plus version conforme. Example Link!

HTML:

<label> Your Hero's gender </label><input id="heroGender"/><br/> 
<label> Your Hero's name </label><input id="heroName"/><br/> 
<label> Your Hero's pet type </label><input id="petType"/><br/> 
<label> Your Hero's pet name </label><input id="petName"/><br/> 
<button> Make me a hero! </button> 
<div id="output"></div> 

JavaScript:

// make your hero when you press the button 
document.getElementsByTagName("button")[0].addEventListener("click", function() { 
    // get all the values from the text boxes 
    var gender = document.getElementById("heroGender").value, 
     name = document.getElementById("heroName").value, 
     petType = document.getElementById("petType").value, 
     petName = document.getElementById("petName").value; 

    // set the text on your output. 
    document.getElementById("output").textContent = 
     "Once upon a time there was a " + gender + 
     " named " + name + ". " + name + " had a pet " + 
     petType + " called " + petName; 


}, false); 

Le code ci-dessus plantera pour IE8 ou moins :(Faire navigateur cross travail JavaScript est une douleur à droite..

Je Vous pouvez lire la documentation pour les navigateurs à

Mais ce ne sont pas faciles à lire ou naviguer. Un excellent guide visuel pour les scripts de navigateur croisés est le visibone BrowserBook.

Il montrera le soutien croix navigateur (rouge firefox, le bleu est IE):

enter image description here

Donnez-lui quelques mois et vous saurez comment utiliser tout ce qui confortablement.

+1

Merci. J'apprécie cela. Il y avait cependant une erreur dans les lignes ci-dessus. Le débogueur a terminé à la ligne 9, – ZenProcrastination

+1

+1 pour avoir donné des outils et des méthodes, pas seulement des réponses pures à la question "devoirs". –

+0

Merci pour cette réponse complète. Je vais certainement commencer à utiliser Firebug. J'attends mes livres JS en provenance d'Amazon. – ZenProcrastination

1

Trop de citations et d'un manque, plus

Error: missing) after argument list 
Source File: http://fiddle.jshell.net/_display/ 
Line: 41, Column: 83 
Source Code: 
document.write('Once upon a time there was a ' + heroGender + ' named ' + heroName '.''<BR>' + 

doivent être

document.write(' named ' + heroName + '.<BR>' + 
heroName + ' had a ' + petType + ' called ' + petName + '.'); 

http://jsfiddle.net/mplungjan/zHGsD/

1

Il y a une erreur de syntaxe dans cette ligne:

document.write('Once upon a time there was a ' + heroGender + ' named ' + heroName '.''<BR>' + heroName + ' had a ' + petType + ' called ' + petName + '.'); 

SPECIF quement, ici:

heroName '.''<BR>' + heroName 

Si vous changez à cela, votre devrait fonctionner comme prévu:

document.write(' named ' + heroName + ' who had a ' + petType + ' called ' + petName + '.'); 

Notez que j'ai aussi enlevé la redondance de la première partie de la phrase, puisque vous avez déjà inclus avant votre "si" F ", alors" fille "" déclaration.

+0

Merci pour le commentaire sur la redondance. J'ai été intrigué par cela, mais la façon dont la question était structurée donnait l'impression que la phrase était requise avant et après. Très appréciée. – ZenProcrastination

0

Le problème est sur votre dernière ligne. Correction de suivre

document.write('Once upon a time there was a ' + heroGender + ' named ' + heroName + '.' + '<BR>' + heroName + ' had a ' + petType + ' called ' + petName + '.'); 
1
document.write('Once upon a time there was a ' + heroGender + ' named ' + heroName **+** '.' **+** '<BR>' + 
            heroName + ' had a ' + petType + ' called ' + petName + '.'); 

Je l'ai à courir en ajoutant les deux + que je l'ai enveloppé dans **

+0

Génial. Thankyou :-) dommage qu'il soit trop tard pour obtenir les notes mais l'expérience est le nom que nous donnons à nos erreurs. – ZenProcrastination

+0

@ZenProcrastination: Heureux de répondre. Je travaille davantage sur les réponses pour résoudre le problème et améliorer mes connaissances personnelles. Je partage ensuite les réponses pour aider les autres. :) – Nija

Questions connexes