代码之家  ›  专栏  ›  技术社区  ›  Ben Everard

将数据数组传递给jquery函数

  •  5
  • Ben Everard  · 技术社区  · 14 年前

    故事是这样的…我有一个jquery函数,它可以做一些事情,这个函数经常被引用。其中一个输入参数是一个数组,这个数组数据是硬编码的,因此我希望像这样传递数据:(这是我使用php的方法)

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

    而不是

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

    那么,如何使用jquery函数实现这一点呢?如果可能的话,我希望这是一个单行程序。

    编辑

    也许我的例子有点误导人,再看看数组索引。我发送的数组是一个关联数组。

    简而言之,我不希望在函数之前有任何变量,我希望数组直接在函数参数中硬编码,正如我给出的第一个示例中所建议的那样。

    -)

    5 回复  |  直到 14 年前
        1
  •  7
  •   ground5hark    14 年前

    我重新阅读了你编辑过的问题,你的答案在javascript对象中,很像其他语言的字典或散列:

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

    对于回调,只需将其作为一个在现场声明的文本传入即可:

        myFunction({ first_key: '1', second_key: '2', third_key: '3'});
    
        2
  •  1
  •   ant    14 年前

    如果这就是你的意思,这里有一个例子:

        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/
    
        3
  •  1
  •   David    14 年前

    查看数组的json格式…

    somefunction({'key1':'value', 'key2':'value'});
    
        4
  •  0
  •   ground5hark    14 年前

    我不太清楚你在问什么,但我会尽力回答的。如果在多个位置引用此数组,则最好先将其定义为常量:

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

    如果只引用此硬编码数组一次,则将其作为在函数调用中声明的数组文本传递到jquery函数中:

        myFunction(['a', 'b', 'c']);
    
        5
  •  0
  •   Álvaro González    14 年前

    javascript没有关联数组。使用常规数组和对象的组合,您可能会得到所需的内容:

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

    有一种称为json的数据格式使用javascript语法。因为您似乎在使用php并且php具有生成json的内置函数(find json_encode() 在php手册中)这可能是一个非常简单的任务:将php数据结构编码为json,并按照javascript的原样使用它。