2016-05-15 52 views
1

我想知道如何解决以下问题:在ASP中使用经典的javascript变量

我有一个数组 - 在ASP经典

objArray 

而且我在JavaScript中使用此环路。问题是我如何在JavaScript代码中访问asp数组中的单个元素,并使用它的变量。在Javascript中,我可以很容易地从ASP的阵列的individal元素,如果我用一个整数,比如:

var theString = '<%=objArray[3]%>'; 

也就是说在第4'位置的元素。

但 - int在JavaScript中的循环 - 我需要使用变量'我'来获取元素 - 但我怎么能做到这一点,因为它的ASP?请参阅下面的代码。

<script type="text/javascript"> 

    var arrayLen = '<%=nObjects%>' 

    for (var i = 0; i < arrayLen; i++) { 

     var y = document.createElement("label"); 

     y.innerHTML = '<%=objArray(i)%>'; // this doesnt work since asp doesnt recognice the variable i 

     document.body.appendChild(y); 

    } 

    </script> 

回答

2

既然你已经在服务器端的数组,你可以做的ASP代码本身的循环:

<% 
Dim objArray : objArray = Array(1,2,3,4,5) 
Dim i 
%> 
<script type="text/javascript"> 

var y; 
<% 
    for i=0 to UBound(objArray) 
%> 

     y = document.createElement("label"); 
     y.innerHTML = "<%=objArray(i)%>"; 
     y.id="label_<%=objArray(i)%>"; 
     document.body.appendChild(y); 
<% 
next 
%> 

    document.getElementById("label_1").innerHTML = "Modified First Label"; 

</script> 
+1

为什么我不想这个:-)谢谢!!! – java

+0

另一种方法*(取决于您的要求)*将通过AJAX调用将数组的处理和'

-1

你错过了你的代码length

<script type="text/javascript"> 

    var arrayLen = '<%=nObjects%>'; 

    for (var i = 0; i < arrayLen.length; i++) { 

     var y = document.createElement("label"); 

     y.innerHTML = 'arrayLen(i)'; 

     document.body.appendChild(y); 

    } 

    </script> 
+0

不幸的将无法工作,因为'i'变量对于经典ASP来说是未知的,在这一点上,循环需要在服务器端完成,这是无法避免的*(除非将序列化到客户端,只是p ointless imo)*,请记住服务器端代码在返回给客户端之前设置。 – Lankymart