Javascript innerhtml在第二次函数调用未定义函数时不显示

Javascript innerhtml在第二次函数调用未定义函数时不显示,javascript,jquery,html,Javascript,Jquery,Html,首先,我想说我是一名学生,对前端开发非常陌生,对javascript不太熟悉,但我正在慢慢尝试通过编写一些非常基本的东西来学习 我在做什么 我正在尝试创建一个赔率比较计算器,它将显示选定比赛的最佳赔率。你可以 Javascript function createTeams() { var tour = document.getElementById('tournaments').value; if (tour == "six-nations") { var create =

首先,我想说我是一名学生,对前端开发非常陌生,对javascript不太熟悉,但我正在慢慢尝试通过编写一些非常基本的东西来学习

我在做什么

我正在尝试创建一个赔率比较计算器,它将显示选定比赛的最佳赔率。你可以

Javascript

   function createTeams() {
  var tour = document.getElementById('tournaments').value;
  if (tour == "six-nations") {
    var create = document.getElementById('teamsDiv').innerHTML = "<h3>Select Team</h3><select id='teams'><option value='Wales'>Wales</option><option value='England'>England</option><option value='Ireland'>Ireland</option><option value='Scotland'>Scotland</option> <option value='France'>France</option><option value='Italy'>Italy</option></select><input type='submit' value='Check Odds' onClick='checkOdds()' />"

  }
}//function createteams


function checkOdds() {
  var teams = document.getElementById('teams').value;
  //set bookmaker values
  var EngBestOdds = "<h3>Best Odds For England:</h3> Ladbrokes @ 3.00";
  var WalesBestOdds = "<h3>Best Odds For Wales:</h3> BetVictor @ 4.33";
  var IrelandBestOdds = "<h3>Best Odds For Ireland:</h3>Sportingbet @ 4.00";
  var ScotlandBestOdds = "<h3>Best Odds For Scotland:</h3>Paddy Power @ 17.00 AND BetVictor @17.00"
  var FranceBestOdds = "<h3>Best Odds For France:</h3>Sportingbet @ 6.50"
  var ItalyBestOdds = "<h3>Best Odds For Italy:</h3>BetVictor @501.00"
    //get teams
  var selectedTeam = document.getElementById("teams").value
  if (selectedTeam == "England") {
    document.getElementById("dispOdds").innerHTML = EngBestOdds;
  }
  if (selectedTeam == "Wales") {

    document.getElementById("dispOdds").innerHTML = WalesBestOdds;
  }
  if (selectedTeam == "Ireland") {

    document.getElementById("dispOdds").innerHTML = IrelandBestOdds;
  }

  if (selectedTeam == "Scotland") {

    document.getElementById("dispOdds").innerHTML = ScotlandBestOdds;
  }


  if (selectedTeam == "France") {

    document.getElementById("dispOdds").innerHTML = FranceBestOdds;
  }

  if (selectedTeam == "Italy") {

    document.getElementById("dispOdds").innerHTML = ItalyBestOdds;
  }

} //function
函数createTeams(){
var tour=document.getElementById('tournaments').value;
国际单项体育联合会(巡回赛=“六国”){
var create=document.getElementById('teamsDiv').innerHTML=“选择TeamWalesEnglandIrelandScotland francetaly”
}
}//功能创建团队
函数校验比(){
var teams=document.getElementById('teams').value;
//设定收受赌注者的价值
var EngbestLobbits=“英格兰最佳赔率:立博@3.00”;
var walesbest赔率=“威尔士的最佳赔率:BetVictor@4.33”;
var irelandbest赔率=“爱尔兰的最佳赔率:Sportingbet@4.00”;
var scotlandbest赔率=“苏格兰的最佳赔率:Paddy Power@17.00和BetVictor@17.00”
var francebestods=“法国的最佳赔率:Sportingbet@6.50”
var italybest赔率=“意大利的最佳赔率:BetVictor@501.00”
//组队
var selectedTeam=document.getElementById(“团队”).value
if(selectedTeam==“英格兰”){
document.getElementById(“dispLobbs”).innerHTML=EngBestLobbs;
}
如果(已选择团队==“威尔士”){
document.getElementById(“dispLobbits”).innerHTML=WalesBestLobbits;
}
如果(选择团队==“爱尔兰”){
document.getElementById(“dispLobbits”).innerHTML=IRelandBestLobbits;
}
如果(选择团队==“苏格兰”){
document.getElementById(“dispLobbits”).innerHTML=ScotlandBestLobbits;
}
如果(选择团队==“法国”){
document.getElementById(“dispLobbs”).innerHTML=francebestods;
}
如果(选择团队==“意大利”){
document.getElementById(“dispLobbits”).innerHTML=ItalybestLobbits;
}
}//函数
HTML

<h3>Select Tournament</h3>
<select id="tournaments">
  <option value="">-----</option>
  <option value="six-nations">Six Nations</option>
</select>
<input type="submit" onclick="createTeams()" />
<div id="teamsDiv">
</div>
<div id="dispOdds">
</div>
选择比赛
-----
六国
我的问题

  • 当在我的小提琴中运行这个时,我得到了错误
    未定义的函数
    createTeams()
  • 我觉得这段代码不是很有效,可以大大改进,任何关于如何改进的提示或建议都将不胜感激
  • 最终输出应该是什么样子


    任何帮助和建议都将不胜感激

    createTeams
    方法在全局范围内不可见,因为它包含在
    文档中。ready
    事件处理程序中

    您需要将fiddle中的JS设置从
    onload
    更改为
    No wrap-in-head

    为了改进代码,可以形成团队消息的对象(键值),如

    var teamMessage = {
      "England" : "Your odds are...";
    }
    
    document.getElementById("dispOdds").innerHTML = teamMessage[ team ];
    
    然后根据团队选择,您可以简单地显示如下消息

    var teamMessage = {
      "England" : "Your odds are...";
    }
    
    document.getElementById("dispOdds").innerHTML = teamMessage[ team ];
    

    将fiddle中的JS设置从
    onload
    更改为
    No wrap-in head
    ,这至少可以解决第一个问题您的JS代码在页面顶部吗?在?和代码审查这是正确的地方@gurvinder372非常感谢你解决了小提琴的问题,但是-我想改进这段代码,任何提示都会非常感谢它的工作良好。结果正如您在我的本地PC上测试时所提到的,谢谢您,如果我可以问的话,
    var teamMessage={“England”:“您的赔率是…”;}
    我如何将其他团队添加到此对象中……非常感谢您much@TimothyCoetzee
    var teamMessage={“英格兰”:“你的胜算是…”,“新西兰”:“你的胜算是…”
    @TimothyCoetzee应该可以帮助您更好地理解JSON