1

最终目的是返回显示以下句子的页面

曾几何时,有一个名为 NAME 的性别
,他有一个名为 PET NAME 的宠物。

<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>
4

6 回答 6

7

在您等待书籍的同时!

Mozilla 开发者中心学习!

一个例子:

例子

固定版本

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

破解版

你缺少+符号。

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

尝试使用

  • Firefox 和Firebug及其控制台选项卡(按 F12)
  • IE9 和内置控制台(按 F12。确保控制台已打开然后刷新)。
  • Chrome 和内置控制台(按 Ctrl+Shift+J)

观察任何错误消息。

如果那太费力了,那就试试

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

这是一个“改进的”更符合标准的版本。示例链接!

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);

上面的代码将在 IE8 或更低版本中中断 :(。让 JavaScript 跨浏览器工作是一种痛苦。

所以我你可以阅读浏览器的文档

但这些并不容易阅读或导航。visibone BrowserBook是一个很棒的跨浏览器脚本可视化指南。

它将显示跨浏览器支持(红色是 Firefox,蓝色是 IE):

在此处输入图像描述

给它几个月,你就会知道如何舒适地使用所有这些。

于 2011-05-17T20:15:34.507 回答
2

我认为你在最终的 document.write 中有一些拼写错误。你在 heroName 之后缺少了一个“+”......而且你有一些重复的 document.writes。

这是我认为应该是您的最终代码的内容:

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 + '.');
于 2011-05-17T20:15:19.630 回答
1
document.write('Once upon a time there was a ' + heroGender + ' named ' + heroName **+** '.' **+** '<BR>' +
                                    heroName + ' had a ' + petType + ' called ' + petName + '.');

我通过添加+我包裹的两个来运行它**

于 2011-05-17T20:21:48.363 回答
1

引用过多且缺少加号

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>' + 

应该

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

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

于 2011-05-17T20:15:55.850 回答
1

此行存在语法错误:

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

具体来说,这里:

heroName '.''<BR>' + heroName

如果将其更改为此,您应该可以按预期工作:

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

请注意,我还删除了短语第一部分的冗余,因为您已经在“if 'F', then 'girl'”语句之前包含了它。

于 2011-05-17T20:16:13.630 回答
0

问题出在你的最后一行。更正如下

document.write('Once upon a time there was a ' + heroGender + ' named ' + heroName + '.' + '<BR>' + heroName + ' had a ' + petType + ' called ' + petName + '.');
于 2011-05-17T20:19:56.517 回答