Javascript 2-d关联数组
|
我有一个Javascript 2-D数组,定义如下:
proData[prov_999998] = new Array();
proData[prov_999998][\"address\"] = \"29 South St. South #202 Uxbridge ON L9P 1V9\";
proData[prov_999998][\"phone\"] = \"555-555-5555\";
proData[prov_999998][\"fax\"] = \"444-444-4444\";
我正在尝试通过此函数访问这些数组元素:
function switchPro(value) {
document.getElementById(\"letterheadName\").value = value;
document.getElementById(\"letterheadAddress\").value = providerData[prov_999998][\"address\"];
document.getElementById(\"letterheadAddressSpan\").innerHTML = providerData[prov_999998][\"address\"] ;
document.getElementById(\"letterheadPhone\").value = providerData[prov_999998][\"phone\"];
document.getElementById(\"letterheadPhoneSpan\").innerHTML = providerData[prov_999998][\"phone\"];
document.getElementById(\"letterheadFax\").value = providerData[prov_999998][\"fax\"];
document.getElementById(\"letterheadFaxSpan\").innerHTML = providerData[prov_999998][\"fax\"];
}
但我收到一条错误消息:\“ prov_999998在\” providerData [prov_999998] [\“ address \”]; \“中未定义。
有人可以帮我吗?我无法将数字用作数组索引,因为javascript不接受以\'0 \'开头的数组索引,例如[0999]。这些数组索引是用户输入的ID,因此我无法限制ID格式。我是javascript的新手,因此希望获得帮助。
实际上,我希望第一个索引为变量。这是我在做什么:
function switchProvider(value) {
var val = \"prov_\"+value;
document.getElementById(\"letterheadName\").value = value;
document.getElementById(\"letterheadAddress\").value = providerData[val][\"address\"];
document.getElementById(\"letterheadAddressSpan\").innerHTML = providerData[val][\"address\"] ;
document.getElementById(\"letterheadPhone\").value = providerData[val][\"phone\"];
document.getElementById(\"letterheadPhoneSpan\").innerHTML = providerData[val][\"phone\"];
document.getElementById(\"letterheadFax\").value = providerData[val][\"fax\"];
document.getElementById(\"letterheadFaxSpan\").innerHTML = providerData[val][\"fax\"];
}
但这不起作用,网页上的值被呈现为“未定义”。我究竟做错了什么?
这是更多代码,它们是JSP和Javascript一起使用。
var providerData = new Array();
<%
for (Provider p : prList) {
if (!p.getProviderNo().equalsIgnoreCase(\"-1\")) {
String prov_no = \"prov_\"+p.getProviderNo();
%>
providerData[<%=prov_no%>][\"address\"] = \"<%=(p.getClinicAddress() + \" \" + p.getClinicCity() + \" \" + p.getClinicProvince() + \" \" + p.getClinicPostal()).trim() %>\";
providerData[<%=prov_no%>][\"phone\"] = \"<%=p.getClinicPhone().trim() %>\";
providerData[<%=prov_no%>][\"fax\"] = \"<%=p.getClinicFax().trim() %>\";
<% }
} %>
没有找到相关结果
已邀请:
3 个回复
肉脓措伪
并使用(即)访问
现在,如果prov_999998是变量,那么您确实应该在不添加引号的情况下访问它,但是请确保已为其分配了一个值,并且当您尝试在函数中使用它时,该值仍然存在。 原始答案 您应该将prov_999998括在引号
中,以使其成为文字,否则将其视为变量。
和
翰冒绢县
但是您应该考虑加载到其中的数据量。
购藏盗码韦
应该
等等。无论如何,您可以使用javascript对象以一种简洁的方式来做到这一点。