0

こんにちは、私は asp クラシックと jquery を使用したばかりで、コレクション変数を jquery に渡す方法があるかどうか疑問に思っています。私の目標は、変数を 1 つずつ下にスライドさせることです。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      


        %>

Jクエリコード:

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

2 に答える 2

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

最初のパラメーターはコレクションで、2番目はJavaScriptコレクションを保持するクライアント側変数の目的の名前です。

これにより、上記のメソッドの2番目のパラメーターとして指定した名前を使用して後でアクセスできるクライアント側の複雑なオブジェクトが作成されます。

動作していることをデバッグする一般的な方法:

<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 に答える
0

各ディクショナリ キーを div のようなある種の DOM コンテナに配置しようとしましたか。それぞれが #toFall の子です。

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

^^構文を再確認してください - 私の VBScript は錆びています。また、ループを中断したいのですが、それは書き込みが 1 回だけ発生するという意味ではありませんか?

于 2012-08-27T16:20:17.963 に答える