Javascript 如果else语句和数组
我想用一个if。。。else语句,并通过数组元素的值为变量stateCode赋值。有些东西不工作,可能是阵列不正确。 代码如下:Javascript 如果else语句和数组,javascript,Javascript,我想用一个if。。。else语句,并通过数组元素的值为变量stateCode赋值。有些东西不工作,可能是阵列不正确。 代码如下: <!DOCTYPE html> <html> <head> <title>if...else</title> <script type="text/javascript"> function choices() { var stateCode = document.getElemen
<!DOCTYPE html>
<html>
<head>
<title>if...else</title>
<script type="text/javascript">
function choices() {
var stateCode = document.getElementById("x").value;
var taxes = new Array(10; 7.5; 3.2);
if ("x" === "OR") {
document.writeln(taxes[0]);
} else if ("x" === "CA") {
document.writeln(taxes[1]);
} else if ("x" === "MO") {
document.writeln(taxes[2]);
}
}
</script>
</head>
<body>
<p>
<select id="x" onchange="choices(this.value);">
<option value = "">---Reset---</option>
<option value = "MO">MO</option>
<option value = "OR">OR</option>
<option value = "CA">CA</option>
</select>
</p>
</body>
</html>
将x替换为stateCode,然后重试
并替换var税=新阵列10;7.5; 3.2; 与:
它应该有用,对我有用
那么,这样做如何:将整个函数替换为:
function choices() {
var stateCode = document.getElementById("x");
var taxes = new Array(10, 7.5, 3.2);
if (stateCode.value != "") {
document.getElementById("taxes").innerHTML = taxes[stateCode.selectedIndex - 1];
}
}
然后在页面的某个地方添加一个。嗯,我不确定所有的仇恨都来自哪里。然而,你有很多问题 document.writeln在javascript中永远不好用。它会覆盖文档。这意味着您的选择框将消失。 你一定是打错了,因为你的字符串比较太傻了。但是,使用=== 内联方法处理程序,onchange=choicethis.value;,这不是最糟糕的事情。但它们应该避免。使用javascript,您可以更轻松地处理浏览器之间的不同怪癖。 现代浏览器将具有调试此代码的方法。firefox的Firebug、internet explorer中的F12 PC和webkit浏览器中的调试控制台。这些将告诉你行号,并允许你以致命的精确度查明问题。 您当前正在内联处理程序中发送select的值,所以我猜只需使用它即可。 新的数组语法很麻烦。我避免使用括号[10,3.2,3]。 关于你的问题: 添加HTML
<div id="results"></div>
我怀疑字符串x是否会等于字符串,或者……也许你是想写if stateCode===或&c。;也是新数组10中的语法错误;7.5; 3.2. 这些应该是逗号,实际上,您还应该使用数组文字表示法:[10,7.5,3.2].aaaaaaa并且如果任何document.write调用执行,它将完全覆盖DOM中的内容。将下拉列表的值传递给choices,但忽略函数中的参数;为什么?您应该真正开始熟悉浏览器的开发工具pronto.并更换新的Array10;7.5; 3.2; 新阵列10,7.5,3.2@罗宾[10,7.5,3.2]甚至更好。它更简洁,新数组的参数充其量也令人困惑。我尝试过这个,但它还不起作用
function choices() {
var stateCode = document.getElementById("x");
var taxes = new Array(10, 7.5, 3.2);
if (stateCode.value != "") {
document.getElementById("taxes").innerHTML = taxes[stateCode.selectedIndex - 1];
}
}
<div id="results"></div>
function choices(stateCode) {
var results = document.getElementById("results");
var taxes = [10, 7.5, 3.2];
switch(stateCode) {
case "OR":
results.innerHTML = taxes[0];
break;
case "CA":
results.innerHTML = taxes[1];
break;
case "MO":
results.innerHTML = taxes[2];
break;
default:
results.innerHTML = "No tax records for entry: " + stateCode;
break;
}
}