2010-03-22 58 views
5

這裏有個故事......我有一個jQuery函數來執行某些操作,這個函數被非常有規律地引用。其中輸入參數是一個數組,這個數組數據是硬編碼,因而我想通過這樣的數據:(這是我將如何使用PHP做)向jQuery函數傳遞數據數組

myFunction(Array("url"=>"abc.com","example"=>"hello_world")); 

而不是

$arr=Array("url"=>"abc.com","example"=>"hello_world"); 
myFunction($arr); 

那麼,如何用我的jQuery函數實現這一點,我希望這是一個單線程,如果可能的話。

編輯

也許我的例子是有點誤導,再看看數組索引。我發送的數組是一個關聯數組。

簡而言之,我不希望任何變量在我的函數之前,我想直接在函數參數中硬編碼數組,如我給出的第一個示例中所建議的。

:-)

回答

7

我重讀你編輯的問題,你的答案是JavaScript對象,就像在其他語言的字典或哈希:

{ first_key: '1', second_key: '2', third_key: '3' }; 

併爲您的回調,只是通過它作爲文字當場宣佈:

myFunction({ first_key: '1', second_key: '2', third_key: '3'}); 
1

下面是例子,如果這是你的意思:

var arr = [ "one", "two", "three", "four", "five" ]; 

    jQuery.each(arr, function() { 
      $("#" + this).text("Mine is " + this + "."); 
      return (this != "three"); // will stop running after "three" 
     }); 

//Source http://api.jquery.com/jQuery.each/ 
+0

感謝您的回答,不幸的是我認爲我的問題有點誤導,因此這與我的問題無關。感謝任何方式雖然:) – 2010-03-22 10:13:22

0

我不完全知道你是問這裏有什麼,但我給它回答了一槍。如果你在多個地方引用此數組,那麼它可能最好將其定義爲一個常數第一:

ARRAY = ['a', 'b', 'c'] 
    myFunction(ARRAY); 
    myFunction2(ARRAY); 

如果只引用這個硬編碼陣列一次,然後將它傳遞到jQuery的功能字面的數組中的函數調用聲明:

myFunction(['a', 'b', 'c']); 
+0

您好,最後一個例子幾乎正是我想要做的,我不想在我的函數之前有任何變量,但它必須是一個關聯數組。再次感謝:) – 2010-03-22 10:14:37

1

查找到JSON格式爲您的陣列...

somefunction({'key1':'value', 'key2':'value'}); 
+0

感謝您的回答,我試過這個'func(['key1':'value','key2':'value']);'但是在元素列表後出現這個錯誤[missing] [Break on這個錯誤] getElementContents(['key1':'value','key2':'value']); ':S – 2010-03-22 10:19:19

+1

我修正了它,我有錯誤的括號 – David 2010-03-22 10:20:02

+0

這工作很好,但bobthabuilda先到那裏。非常感謝您的幫助:) – 2010-03-22 10:22:37

0

JavaScript沒有關聯數組。你也許可以得到你所要求的定期數組和對象的組合是什麼:

var foo = [ 
    { 
     url: "abc.com", 
     example: "hello_world" 
    }, 
    { 
     url: "example.net", 
     example: "example" 
    } 
]; 

有一個使用JavaScript語法的數據格式稱爲JSON。由於您似乎正在使用PHP,並且PHP具有內置函數來生成JSON(在PHP手冊中找到json_encode()),因此它可能是一項非常簡單的任務:將您的PHP數據結構編碼爲JSON,並按原樣從JavaScript中使用它。