开发者

Pass array of data to jQuery function

开发者 https://www.devze.com 2022-12-23 22:42 出处:网络
Here\'s the s开发者_如何学运维tory... I have a jQuery function that does something, this function is referenced very regularly. One of the input parameters is an array, this array data is hard coded a

Here's the s开发者_如何学运维tory... I have a jQuery function that does something, this function is referenced very regularly. One of the input parameters is an array, this array data is hard coded and thus I want to pass the data like this: (this is how I would do it using PHP)

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

Instead of

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

So how do I achieve this with my jQuery function, I want this to be a one liner if possible.

Edit

Maybe my example was a bit misleading, take a look at the array indexes again. The array I am sending is an associative array.

In short I do not want any variables before my function, I want the array to be hardcoded directly in the function parameter as suggested in the first example I gave.

:-)


I reread your edited question, and your answer is in the javascript object, much like dictionaries or hashes in other languages:

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

And for your callback, just pass it in as a literal declared on the spot:

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


Here is example if this is what you mean:

    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/


Look into JSON formatting for your array...

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


I'm not entirely sure what you're asking here, but I'll give answering it a shot. If you're referencing this array in more than one place then it's probably best to define it as a constant first:

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

If your only referencing this hard-coded array once, then pass it into the jQuery function as an array literal declared in the function call:

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


JavaScript does not have associative arrays. You can probably get what you are asking for with a combination of regular arrays and objects:

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

There is a data format called JSON that uses JavaScript syntax. Since you seem to be using PHP and PHP has builtin functions to generate JSON (find json_encode() in the PHP manual) it can be a very simple task: encode your PHP data structure as JSON and use it as is from JavaScript.

0

精彩评论

暂无评论...
验证码 换一张
取 消