好吧所以在我的上一个问题中,它说要将我的变量变成字符串,但我仍然无法正常工作,因为我感到悲伤之前,这是因为用户将设置那里的情绪1-10。如果他们在1-3之间选择图像将是悲伤面,4-7中性面和8-10幸福面。但它不起作用提示显示但它仍然无法正常javascript被置于标题内:
taskA
请告诉我我做错了什么在这里一切都没有错误,但我的输出图像保持中立,如果有人可以尝试这个项目并测试它并证明它有效,请发给我代码。
答案 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 :)
}
上面,我提示用户,然后将输入转换为整数。要检查要返回的情绪,我使用<=
比较运算符。