2010-03-22 59 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中使用它。