Hakuna matata!
So ganz verstehe ich dich immer noch nicht, aber ich wills nochmal versuchen:
Ich suchte ursprünglich eine Möglichkeit auf einen bestimmten key des json-strings zuzugreifen und im zweiten step suchte ich eine Möglichkeit den wert des bestimmten keys dann in ein data-attribut in jede Zeile zu speichern
Angenommen dein JSON-Objekt hat folgende (vereinfachte Struktur):
{
rows : [
{
"data-group" : 1
},
{
"data-group" : 2
},
{
"data-group" : 1
}
]
}
Frickeln wir die beiden Beispiele, die ich dir schon gebastelt habe, doch mal zusammen:
// Wir lauschen auf das jqGridLoadComplete-Event, das ist der Zeitpunkt an dem wir Zugriff auf das JSON-Objekt erhalten können
$('table').on('jqGridLoadComplete', function ( data ) {
var $this = $(this);
// data ist eine Referenz auf das JSON-Objekt, wir wollen aber über die Zeilen itereieren
data.rows.forEach( function ( row, i ) {
// in jeder i-ten Tabellenzeile wollen wir die data-group-Eigenschaft der aktuellen JSON-Zeile speichern
$this.find('tr').eq(i).data('group', row['data-group']);
});
});
Hier passiert also folgendes:
Wenn eine Antwort auf einen Ajax-Request eintrifft, werden alle Zeilen in dem JSON-Objekt (data.rows) iteriert und für jeden Eintrag wird ein data-Attribut an der korrespondierenden Tabellenzeile gesetzt. Inwiefern unterscheidet sich das jetzt noch von deiner Vorstellung?
damit ich dann im 3 step bei klick auf die Zeile diesen wert wieder auslesen kann
Klingt für mich ziemlich umständlich, wieso der Umweg über das data-Attribut? Wie auch immer:
$('tr').click( function(){
var dataGroup = $(this).data('group');
});
PS: jQuerys $().data()
setzt nicht wirklich ein data-Attribut, sondern benutzt einen eigenen internen Speicher. Wenn du unbedingt ein data-Attribut brauchst, dann kannst du mit $().attr('data-group', row['data-group'])
bzw. $().attr('data-group')
arbeiten.
“All right, then, I'll go to hell.” – Huck Finn