2016-05-15 53 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