当每个变量都是单个变量时,此代码有效。当我把所有东西放在数组中时,它不起作用。这是两个带数字的下拉列表。每个列表中的每个数字最终将根据这两个数字显示另一个数字(我不知道该怎么做)。
我在数组上找到的几乎所有内容都是使用for语句。
这是我的HTML代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="pwh.js"></script>
<style type="text/css">
<!--
#apDiv1 {
position:absolute;
left:10px;
top:15px;
width:297px;
height:59px;
z-index:1;
color:000;
}
-->
</style>
</head>
<body>
<div id="apDiv1">
<p>
<select name="marked" id="marked" onchange="checkdata(this); ">
<option value="">SELECT</option>
<option>201</option>
<option>206</option>
<option>224</option>
<option>319</option>
</select>
<select name="marked1" id="marked1" onchange="checkdata(this); ">
<option>SELECT</option>
<option>201</option>
<option>206</option>
<option>224</option>
<option>319</option>
</select>
<button onClick="myFunction()">Calculate</button>
<p id="demo"></p>
</div>
<script type="text/javascript">
function myFunction(){
var select1 = parseInt(document.getElementById("marked").value);
var select2 = parseInt(document.getElementById("marked1").value);
if (select1 == a && select2 == b)
{
document.getElementById("demo").innerHTML = "it works";
}}
</script>
</body>
</html>
这是js文件:
var a=["201","206","224"];
var b=["319","333","354","355","c355"];
var c=["356","a356","357","a357","413","443","a444"];
var d=["511","512","513","514","535"];
var e=["7004","7005","7039","710","712"];
var f=["6009","6010","6070"];
var g=["6005","6051","6063","6101","6151","6201","6351","6951"];
var h=["5456"];
var i=["5454"];
var j=["5154","5254"];
var k=["5086"];
var l=["5083"];
var m=["5052","5652"];
var n=["5005","5050"];
var o=["3004","Alc-3004"];
var p=["2219"];
var q=["2014","2036"];
var r=["1100","3003","Alc-3003"];
var s=["1060","1070","1080","1350"];
然后我将根据所选的数字显示更多其他数字的变量。谢谢你的帮助。
答案 0 :(得分:0)
将数字与数组进行比较是没有用的。如果需要检查数组是否包含某些值,可以执行以下操作:
var select1 = document.getElementById("marked").value;
var select2 = document.getElementById("marked1").value;
if (a.indexOf(select1) > -1 && b.indexOf(select2) > -1) {...}
由于您在数组中有字符串,因此删除了parseInt()
。
Array.indexOf()
。请注意,IE&lt; 9。中不支持此方法
修改强>
如果您正在实施像Aluminum filler metal selection chart这样的数据结构,我更倾向于采用略有不同的方法。
option
的{{1}}处。select
,反转第一个。{/ li>
select
对象,该对象有两个属性:data
[3D Array]
和quality
[2D数组]。
filler
表示图表中的行和quality[]
列。quality[][]
都是一个数组,其中包含两种选定基础合金的所有“质量替代品”。quality[][]
表示行,每行包含一组合适的填充材料。这是数据结构的图像。 (filler[]
。)
请检查a live demo at jsFiddle以了解如何构建数据。 (小提琴中的base1[0] === base2[C] - base1[R] === base2[0]
已经填充了上面链接的ESAB图表的最后六行中的值。)