Ok, also ich möchte ein sehr einfaches Array wie folgt an eine jquery data attrubute-Serverseite übergeben:
<div data-stuff="['a','b','c']"></div>
und dann wie folgt zurückerhalten:
var stuff = $('div').data('stuff');
alert(stuff[0]);
Warum scheint dies '[' und nicht 'a' zu alarmieren (siehe JSfiddle-Link)
JSFiddle Link: http://jsfiddle.net/ktw4v/3/
quelle
Wenn Sie es als Attribut deklarieren, bedeutet dies, dass es sich um eine Zeichenfolge handelt.
Also
stuff[0]
wäre gleichbedeutend mit:var myString = "['a','b','c']"; alert(myString[0]);
Sie müssen es so aussehen lassen:
Rückzug: Das Parsen von jQuery schlägt fehl, weil es nicht den Regeln von parseJSON entspricht.
Ich werde jedoch hinter meiner Lösung stehen. Es gibt Aspekte der anderen, die weniger als ideal sind, genauso wie diese Lösung in mancher Hinsicht weniger als ideal ist. Alles hängt davon ab, was Ihre Paradigmen sind.
quelle
Wie andere identifiziert haben, wird der Wert als Zeichenfolge behandelt, sodass "[" zurückgegeben wird. Bitte versuchen Sie dies (aaa ist der Name des Div und ich habe das Datenmaterial herausgenommen):
quelle
Ein anderer Ansatz ist bei jsfiddle zu finden .
var stuff = $('div').data('stuff');
stuff ist eine Zeichenfolge mit dem 0. Zeichen als '['Nun,
var stuff = eval($('div').data('stuff'));
sollte Ihnen ein Array besorgenquelle