为什么下面的按钮切换情况下javascript工作

why isn't the following button switch case javascript working?

本文关键字:情况下 javascript 工作 按钮 为什么      更新时间:2023-09-26

我使用以下代码来获取按钮用户单击的值,然后在标签中打印相同的值。我已经在Worklight项目中编写了此代码,当我运行该项目时,我定义的其他功能似乎都不起作用。但是当我把这个函数放在注释中,一切似乎都工作得很好。

我也试过直接把按钮的id直接到开关箱,但这也不起作用。我是新的javascript的概念,无法找到一个解决方案。如果有帮助的话,在javascript下面提供了必要的HTML。

function typecheck(objButton) {
  exptype = document.getElementById("exptype");
  grocery = document.getElementById("button");
  medical = document.getElementById("button2");
  education = document.getElementById("button3");
  entertainment = document.getElementById("button4");
  automobile = document.getElementById("button5");
  insurance = document.getElementById("button6");
  others = document.getElementById("button7");
  switch (objButton)
case "grocery":
  exptype.innerHTML = "grocery";
  break;
case "medical":
  exptype.innerHTML = "medical";
  break;
case "education":
  exptype.innerHTML = "education";
  break;
case "entertainment":
  exptype.innerHTML = "entertainment";
  break;
case "automobile":
  exptype.innerHTML = "automobile";
  break;
case "insurance":
  exptype.innerHTML = "insurance";
  break;
default:
  exptype.innerHTML = "others";
  break;
}
html代码:
<div data-role="collapsible" id="collapsible2">
  <h3>Category</h3>  
    <div data-role="controlgroup" id="controlgroup1">
      <a href="#" data-role="button" id="button" onclick="typecheck(this)">Grocery</a>
      <a href="#"   data-role="button" id="button2" onclick="typecheck(this)">Medical</a>
      <a href="#"   data-role="button" id="button3" onclick="typecheck(this)">Education</a>
      <a href="#"   data-role="button" id="button4" onclick="typecheck(this)">Entertainment</a>
      <a href="#"   data-role="button" id="button5" onclick="typecheck(this)">Automobile</a>
      <a href="#"   data-role="button" id="button6" onclick="typecheck(this)">Insurance</a>
      <a href="#"   data-role="button" id="button7" onclick="typecheck(this)">Others</a>
    </div>              
  <label id="exptype">Label:</label>

试试这个(记住大小写敏感):

function typecheck(objButton)
{
switch(objButton.innerHTML){
case "Grocery": exptype.innerHTML= "grocery";
                break;
case "Medical": exptype.innerHTML= "medical";
                break;
case "Education": exptype.innerHTML= "education";
                break;
case "Entertainment": exptype.innerHTML= "entertainment";
                break;
case "Automobile": exptype.innerHTML= "automobile";
                break;
case "Insurance": exptype.innerHTML= "insurance";
                break;
default:  exptype.innerHTML= "others";
                break;     
}                                         
}

我认为你的问题在于你在typecheck(this)中传递了this。您的切换案例是根据DOM对象检查字符串。取而代之的是这个。typecheck(this.innerHTML)

您有几个问题,但具体来说,您需要测试的文本,无论是innerHTML或innerText,而不是对象。此外,Javascript是区分大小写的。这个小提琴为我工作:http://jsfiddle.net/5VJ2H/

function typecheck(objButton) {
    exptype = document.getElementById("exptype");
    grocery = document.getElementById("button");
    medical = document.getElementById("button2");
    education = document.getElementById("button3");
    entertainment = document.getElementById("button4");
    automobile = document.getElementById("button5");
    insurance = document.getElementById("button6");
    others = document.getElementById("button7");
    switch (objButton.innerHTML.toLowerCase()){
    case "grocery":
      exptype.innerHTML = "grocery";
      break;
    case "medical":
      exptype.innerHTML = "medical";
      break;
    case "education":
      exptype.innerHTML = "education";
      break;
    case "entertainment":
      exptype.innerHTML = "entertainment";
      break;
    case "automobile":
      exptype.innerHTML = "automobile";
      break;
    case "insurance":
      exptype.innerHTML = "insurance";
      break;
    default:
      exptype.innerHTML = "others";
      break;
    }
}
相关文章: