从javascript函数获取结果以显示在html元素中。我可以使用console.log(golfScore(4,3));但不是用户输入

从javascript函数获取结果以显示在html元素中。我可以使用console.log(golfScore(4,3));但不是用户输入,javascript,html,Javascript,Html,我可以使用console.log(golfScore(4,3));但不是用户输入 我很确定问题出在这行文档中 如果我把数字或任何东西放进高尔夫球杆(这里);什么都不管用 我可以获取console.log(golfScore(4,3))以在控制台中打印正确的答案,或者如果我使用类似document.getElementById(“message”).innerHTML=golfScore(4,3)的内容,我可以获取正确的答案以显示在p元素中 但是我无法让用户输入运行函数并在p元素中返回正确答案

我可以使用console.log(golfScore(4,3));但不是用户输入

我很确定问题出在这行文档中

如果我把数字或任何东西放进高尔夫球杆(这里);什么都不管用

我可以获取console.log(golfScore(4,3))以在控制台中打印正确的答案,或者如果我使用类似document.getElementById(“message”).innerHTML=golfScore(4,3)的内容,我可以获取正确的答案以显示在p元素中

但是我无法让用户输入运行函数并在p元素中返回正确答案

<代码> // 2用户输入一个PAR,一个输入用于笔划。根据重新输入的2个值 让strokes=document.getElementById('strokes').value; 让PAR=文档.GETelEnMyBID(“PAR”)值; 让名字=[“一杆进洞!”、“老鹰”、“小鸟”、“标准杆”、“柏忌”、“双柏忌”、“回家吧!”; 功能高尔夫球杆(杆数、杆数){ 如果(笔划==1){ 返回名称[0]; }如果(笔画=PAR + 3){ 返回名称[6]; } document.getElementById(“message”).innerHTML=golfScore(); }

高尔夫球得分
高尔夫球得分
笔划:标准杆:
你好吗?


当您进入if语句时,它将退出函数。在呈现页面时引用输入字段,因此您没有这些值。您正在使用字符串作为数字

让name=[“一杆进洞!”、“老鹰”、“小鸟”、“标准杆”、“柏忌”、“双柏忌”、“回家吧!”;
函数golfScore(){
让strokes=+document.getElementById('strokes').value;
让PAR= +文档.GETelEnMyBID(“PAR”)值;
var-val;
如果(笔划==1){
val=名称[0];
}如果(笔画=PAR + 3){
val=名称[6];
}
document.getElementById(“message”).innerHTML=val;
}
高尔夫得分
笔划:
标准:
你好吗?

您从未执行分配给
innerHTML
的语句,因为
return
退出函数

即使您到达了那里,它也会再次调用
golfScore()
,但没有参数,因此
if
条件都不会成功

与其返回,不如指定一个变量,然后在末尾将其指定给innerHTML

传递给
golfScore()
的参数是输入元素。它需要得到他们的价值观

<代码> // 2用户输入一个PAR,一个输入用于笔划。根据重新输入的2个值 让strokes=document.getElementById('strokes'); 让PAR =文档.GETelEnMyBID(“PAR”); 让名字=[“一杆进洞!”、“老鹰”、“小鸟”、“标准杆”、“柏忌”、“双柏忌”、“回家吧!”; 功能高尔夫球杆(杆数、杆数){ PAR=PARSETIN(PAR值); strokes=parseInt(strokes.value); 让消息=”; 如果(笔划==1){ 消息=名称[0]; }如果(笔画=PAR + 3){ 消息=名称[6]; } document.getElementById(“message”).innerHTML=message; }

高尔夫球得分
高尔夫球得分
笔划:标准杆:
你好吗?


首次呈现HTML时,javascript文件会运行,而输入框仍然为空

您只引用javascript开头的输入框,因此
笔划
par
仍然是空的(因为它们接收空输入框的值)

但是,如果希望每次调用函数时都检查输入框值,则需要将定义移到函数中

Getting results from a javascript function to display in html element. 
让name=[“一杆进洞!”、“老鹰”、“小鸟”、“标准杆”、“柏忌”、“双柏忌”、“回家吧!”;
功能高尔夫球杆(杆数、杆数){
/在函数的开头定义笔划和PAR
让strokes=parseInt(document.getElementById('strokes').value);
让PAR= PARSETIN(文档.GETelEnMyBID(‘PAR’))值;
放出;
如果(笔划==1){
out=名称[0];
}如果(笔画=PAR + 3){
out=名称[6];
}
document.getElementById(“message”).innerHTML=out;
}

这应该有效:D

if语句退出函数。
let names = ["Hole-in-one!", "Eagle", "Birdie", "Par", "Bogey", "Double Bogey", "Go Home!"];

function golfScore(par, strokes) {
  // Define strokes and par at the beginning of the function  
  let strokes = parseInt(document.getElementById('strokes').value);
  let par = parseInt(document.getElementById('par').value);

  let out;
  if (strokes == 1) {
    out = names[0];
  } else if (strokes <= par - 2) {
    out = names[1];
  } else if (strokes == par - 1) {
    out = names[2];
  } else if (strokes === par) {
    out = names[3];
  } else if (strokes == par + 1) {
    out = names[4];
  } else if (strokes == par + 2) {
    out = names[5];
  } else if (strokes >= par + 3) {
    out = names[6];
  }
  document.getElementById("message").innerHTML = out;
}