2010-03-22 2 views
5

Hier ist die Geschichte ... Ich habe eine jQuery-Funktion, die etwas tut, wird diese Funktion sehr regelmäßig referenziert. Einer der Eingangsparameter ein Array, das Array Daten hart codiert und so möchte ich die Daten wie folgt weitergeben: (dies ist, wie ich es tun würde, PHP)Pass Array von Daten zu jQuery-Funktion

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

Statt

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

Also wie erreiche ich das mit meiner jQuery-Funktion, ich möchte, dass dies ein One Liner wenn möglich ist.

bearbeiten

Vielleicht noch einmal einen Blick auf die Array-Indizes nehmen mein Beispiel ein wenig irreführend war. Das Array, das ich sende, ist ein assoziatives Array.

Kurz gesagt, ich möchte keine Variablen vor meiner Funktion, ich möchte das Array direkt im Funktionsparameter wie im ersten Beispiel vorgeschlagen, die ich gab.

:-)

Antwort

7

ich Ihre editierten Frage wieder gelesen, und Ihre Antwort ist in der Javascript-Objekt, ähnlich wie Wörterbücher oder Hashes in anderen Sprachen:

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

Und für Ihren Rückruf, übergeben Sie es nur in als wörtlichen an Ort und Stelle erklärt:

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

Hier ist beispielsweise, wenn das ist, was Sie nach:

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

Danke für Ihre Antwort, leider denke ich, meine Frage war ein wenig irreführend und somit ist dies nicht relevant für mein Problem. Danke jedenfalls :) –

0

Ich bin nicht ganz sicher, was Sie hier sind gefragt, aber ich gebe ihm einen Schuss zu beantworten . Wenn Sie diese Anordnung sind Referenzierung in mehr als einem Ort, dann ist es wahrscheinlich am besten, es als Konstante zuerst zu definieren:

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

Wenn nur der auf dieses hartcodierte Array einmal, dann geben sie in die jQuery-Funktion als ein Arrayliteral im Funktionsaufruf erklärt:

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

Hallo, das letzte Beispiel ist fast genau das, was ich machen will, ich will keine Variablen vor meiner Funktion, aber es muss ein assoziatives Array sein.Nochmals vielen Dank :) –

1

Blick in JSON Formatierung für Ihr Array ...

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

Danke für Ihre Antwort, ich habe versucht, diese 'func (['key1': 'value', 'key2': 'value']);' aber diesen Fehler 'fehlt] nach der Elementliste [Break on Dieser Fehler] getElementContents (['key1': 'value', 'key2': 'value']); ': S –

+1

Ich reparierte es, ich hatte die falschen Klammern – David

+0

Das funktionierte großartig, aber bobthabuilda kam dort zuerst. Vielen Dank für deine Hilfe :) –

0

JavaScript muss nicht assoziativen Arrays. Sie können sich wahrscheinlich bekommen, was Sie mit einer Kombination aus regelmäßigen Arrays und Objekte fordern:

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

Es ist ein Datenformat namens JSON, die JavaScript-Syntax verwendet. Da Sie PHP und PHP mit eingebauten Funktionen zur Generierung von JSON (find json_encode() im PHP-Handbuch) zu verwenden scheinen, kann es eine sehr einfache Aufgabe sein: kodieren Sie Ihre PHP-Datenstruktur als JSON und verwenden Sie wie von JavaScript.