我有一个用VB脚本编写的经典ASP页面,并且有一个脚本标记,其中使用了Java脚本。
我正在尝试使用for循环将VB脚本数组(codeList)转换为Java脚本数组(availableCode),但是VB脚本数组的第一行继续在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 <%)%>;
有人可以建议如何投射预期值吗?谢谢。
答案 0 :(得分:1)
我认为你需要反过来做,即在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 %>
});
您认为我遇到的问题是服务器端(VBScript)上不存在idx,因此在此语句<%= codeList(idx) %>
中使用时,idx被隐式转换为0.因此总是返回值在codeList(0)
。
答案 1 :(得分:1)
您可以使用Join()输出您的数组:这也将使您的客户端代码更紧凑。
$(document).ready( function(){
var availableCode = ['<%=Join(codeList, "','")%>'];