0

大家好,我是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      


        %>

查询代码:

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

2 回答 2

0

您是否尝试过将每个字典键放在某种 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 生锈了。另外-您确定要在循环中中断-这不意味着只发生一次写入吗?

于 2012-08-27T16:20:17.963 回答
0

这是一个通用方法,它将任何经典的 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]在循环中使用来访问它。

于 2012-08-28T10:17:42.940 回答