我使用以下代码来获取按钮用户单击的值,然后在标签中打印相同的值。我已经在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;
}
}