如何使用提示的用户输入相应地更新页面?

时间:2016-01-30 21:54:20

标签: javascript html image variables prompt

好吧所以在我的上一个问题中,它说要将我的变量变成字符串,但我仍然无法正常工作,因为我感到悲伤之前,这是因为用户将设置那里的情绪1-10。如果他们在1-3之间选择图像将是悲伤面,4-7中性面和8-10幸福面。但它不起作用提示显示但它仍然无法正常javascript被置于标题内:

taskA

请告诉我我做错了什么在这里一切都没有错误,但我的输出图像保持中立,如果有人可以尝试这个项目并测试它并证明它有效,请发给我代码。

1 个答案:

答案 0 :(得分:0)

首先,您在页面加载之前尝试访问DOM(文档对象模型),因此尚未生效HTML。换句话说,您正在与空白页面进行交互。您必须将脚本放在</body>标记之前(这可确保<script>标记上方的所有HTML都处于活动状态且已在DOM中更新)或检查页面是否已加载。

我在这里看到的第二个问题是您使用的功能不存在:getElementByTagName。函数是getElementsByTagName,它返回一个HTMLCollection。这是一个类似于数组的对象,因此您必须访问img所定位的document.getElementsByTagName('img')[0]元素。

上面的两个更改应该使脚本像您希望的那样运行,但我将建议另一个修订版。我不是将输入作为字符串处理,而是首先将其解析为整数,然后在给定范围内检查该整数的包含。例如:

var x = prompt( "What is your mood from 1-10? 1 being sad, 10 being Happy." );

x = parseInt( x );

if ( x <= 3 ) {
  // sad :(
} else if ( x <= 7 ) {
  // neutral :|
} else if ( x <= 10 ) {
  // happy :)
}

上面,我提示用户,然后将输入转换为整数。要检查要返回的情绪,我使用<=比较运算符。