繁体   English   中英

在JQuery中访问ASP经典Collection变量

[英]Accessing ASP classic Collection variable in JQuery

嗨,大家好,我是ASP Classic和jquery的新手,我只是想知道是否有一种方法可以将我的集合变量传递给jquery。 我的目标是使变量一次向下滑动。 我在jquery上遇到了.slideDown函数,因此我尝试使用它,但似乎无法正常工作,所以我想我的问题是什么...任何帮助将不胜感激。

ASP代码:

        <%

        Dim objDictionary, Key,searchWord, myVar,a,i, break
        searchWord = request.QueryString("searchWord")
        break = Response.write("<br />")


        Set objDictionary = CreateObject("Scripting.Dictionary")
        objDictionary.CompareMode=1
        objDictionary.Add "Hello","hello"
        objDictionary.Add "Age","age"
        objDictionary.Add "height","height"
        objDictionary.Add "sample","sample"
        objDictionary.Add "words","words"



        if objDictionary.Exists(searchWord) then
            objDictionary.Remove(searchWord)
           a = objDictionary.Keys

            for i=0 to objDictionary.Count-1
            Response.Write(a(i)) 
            break

            next
            set objDictionary=nothing
        else 
            a = objDictionary.Keys

            for i=0 to objDictionary.Count-1
            Response.Write(a(i)) 
            break
            next
            set objDictionary=nothing

        end if      


        %>

JQUERY代码:

<script type="text/javascript">
    $(document).ready(function(){
    $("#toFall").slideDown("slow");});
</script>

您是否尝试过将每个字典键放在某种DOM容器中,例如div-每个字典键都是#toFall的子代,例如:

   Response.write "<div id='#toFall'>"  
   for i=0 to objDictionary.Count-1
        Response.Write "<div>" + (a(i)) + "</div>"
   next 
   Response.write "</div>"

^^请仔细检查语法-我的VBScript生锈了。 另外-您确定要在循环中中断-难道这意味着只发生一次写操作?

这是一种通用方法,该方法会将任何经典的ASP集合(带有键和值)发送为JavaScript集合:

Sub CollectionToJavaScript(oCollection, sClientSideName) 
    Dim blnFirst
    blnFirst = True
    Response.Write("<" & "script" & " type=""text/javascript"">")
    Response.Write("var " & sClientSideName & " = {")
    For Each key In objDictionary.Keys
        If Not(blnFirst) Then Response.Write(", ")
        Response.Write("""" & key & """: """ & objDictionary(key) & """")
        blnFirst = False
    Next
    Response.Write("};")
    Response.Write("</" & "script>")
End Sub

第一个参数是集合,第二个参数是用于保存JavaScript集合的客户端变量的所需名称。

这将创建客户端复杂对象,以后可以使用您提供的名称作为上述方法的第二个参数来对其进行访问。

调试其正常工作的一般方法:

<script type="text/javascript">
for (var key in myCollection) {
    alert("key is " + key + " and value is " + myCollection[key]); 
}
</script>

对于您的情况,应在填充集合后像这样调用此方法:

Call CollectionToJavaScript (objDictionary, "myCollection")

然后在您的jQuery中,假设您要向下滑动所有键(即所有键都是有效的DOM元素),则应具有以下代码:

$(document).ready(function() {
    for (var key in myCollection) {
        $("#" + key).slideDown("slow");
    }
});

如果还需要与每个键关联的值,请在循环中使用myCollection[key]进行访问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM