将 VBScript 数组转换为经典 ASP 中的 Java 脚本数组
Converting VBScript array to Java Script Array in classic ASP
我有一个经典的 ASP 页面,它是用 VB 脚本编写的,并且有一个脚本标签,其中 Java 脚本使用如下。
我正在尝试使用 for 循环将 VB Script Array(codeList) 转换为 Java Script Array(availableCode) 但 VB Script Array 的第一行一直被转换为Java 脚本数组的每一行。
$(document).ready( function(){
var availableCode = new Array();
for (idx=0; idx < 3; idx++)
{
availableCode[idx]=<%=codeList(idx)%>;
alert (idx);
alert (<%=codeList(idx)%>);
alert (availableCode[idx]);
}
});
我也尝试了以下方法,但出现语法错误。
availableCode[idx]=<%=codeList(%> idx <%)%>;
谁能告诉我如何投射期望值?谢谢。
我认为您需要反过来做,即在 VBScript 中创建索引 (idx),然后将其写入 Javascript:
$(document).ready( function(){
var availableCode = new Array();
<%
dim idx
for idx = 0 to UBound(codeList)
%>
availableCode[<%=idx %>] = <%= codeList(idx) %>;
alert (<%= idx %>);
alert (<%= codeList(idx) %>);
alert (availableCode[<%= idx %>]);
<% next %>
});
如果 codeList 的元素是字符串值,您将需要引用以防止 javascript 错误
$(document).ready( function(){
var availableCode = new Array();
<%
dim idx
for idx = 0 to UBound(codeList)
%>
availableCode[<%=idx %>] = '<%= codeList(idx) %>'; // quote here
alert (<%=idx %>);
alert ('<%= codeList(idx) %>'); // quote here
alert (availableCode[<%= idx %>]);
<% next %>
});
我认为您遇到的问题是 idx 在服务器端 (VBScript) 上不存在,因此当在此语句中使用时 <%= codeList(idx) %>
,idx 被隐式转换为 0。因此总是返回codeList(0)
.
中的值
您可以使用 Join() 来输出您的数组:这也会使您的客户端代码更加紧凑。
$(document).ready( function(){
var availableCode = ['<%=Join(codeList, "','")%>'];
我有一个经典的 ASP 页面,它是用 VB 脚本编写的,并且有一个脚本标签,其中 Java 脚本使用如下。
我正在尝试使用 for 循环将 VB Script Array(codeList) 转换为 Java Script Array(availableCode) 但 VB Script Array 的第一行一直被转换为Java 脚本数组的每一行。
$(document).ready( function(){
var availableCode = new Array();
for (idx=0; idx < 3; idx++)
{
availableCode[idx]=<%=codeList(idx)%>;
alert (idx);
alert (<%=codeList(idx)%>);
alert (availableCode[idx]);
}
});
我也尝试了以下方法,但出现语法错误。
availableCode[idx]=<%=codeList(%> idx <%)%>;
谁能告诉我如何投射期望值?谢谢。
我认为您需要反过来做,即在 VBScript 中创建索引 (idx),然后将其写入 Javascript:
$(document).ready( function(){
var availableCode = new Array();
<%
dim idx
for idx = 0 to UBound(codeList)
%>
availableCode[<%=idx %>] = <%= codeList(idx) %>;
alert (<%= idx %>);
alert (<%= codeList(idx) %>);
alert (availableCode[<%= idx %>]);
<% next %>
});
如果 codeList 的元素是字符串值,您将需要引用以防止 javascript 错误
$(document).ready( function(){
var availableCode = new Array();
<%
dim idx
for idx = 0 to UBound(codeList)
%>
availableCode[<%=idx %>] = '<%= codeList(idx) %>'; // quote here
alert (<%=idx %>);
alert ('<%= codeList(idx) %>'); // quote here
alert (availableCode[<%= idx %>]);
<% next %>
});
我认为您遇到的问题是 idx 在服务器端 (VBScript) 上不存在,因此当在此语句中使用时 <%= codeList(idx) %>
,idx 被隐式转换为 0。因此总是返回codeList(0)
.
您可以使用 Join() 来输出您的数组:这也会使您的客户端代码更加紧凑。
$(document).ready( function(){
var availableCode = ['<%=Join(codeList, "','")%>'];