【问题标题】:Use javascript variable in asp-classic在 asp-classic 中使用 javascript 变量
【发布时间】:2016-05-15 21:20:28
【问题描述】:

我想知道如何解决以下问题:

我有一个数组 - 在 asp 经典中

 objArray

我在 javascript 中循环使用它。问题是当我在 javascript 代码中时如何访问 asp-array 中的各个元素,并为其使用变量。在 Javascript 中,如果我使用整数,我可以很容易地从 asp 数组中获取一个单独的元素,例如:

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

那是第 4 位的元素。

但是 - 在 javascript 中循环 - 我需要使用变量 'i' 来获取元素 - 但是自从它的 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>

【问题讨论】:

    标签: javascript arrays asp-classic


    【解决方案1】:

    由于您在服务器端有数组,您可以在 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>
    

    【讨论】:

    • 另一种方法 (取决于您的要求) 是通过 AJAX 调用将数组的处理和 &lt;label&gt; 的生成传递给 ASP,这样您就不会了t 最终会生成大量客户端代码,从而使您的响应膨胀。
    【解决方案2】:

    您在代码中漏掉了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>
    

    【讨论】:

    • 不幸的是,这也不起作用,因为此时经典 ASP 不知道 i 变量,循环需要在服务器端完成,这是无法避免的(除非您将 Array 序列化到客户端,但这只是 imo 毫无意义),请记住在将任何内容返回给客户端之前设置服务器端代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多