Aus irgendeinem Grund habe ich heute diesen riesigen Gehirn-Furz. >. <Was ist eine bessere Möglichkeit, dieses JSON in jQuery-Daten() umzuschreiben?
Ich habe ein JSON-Daten, die ich mit jQuery .data bin Befestigung(), die wie folgt aussieht:
$.getJSON("names.php", function(data) {
//generate html string and append to DOM
$.each(data, function(i,item) {
var strHtml;
strHtml += '<img src="' +item.PIC + '.jpg" id="' + item.ID + '" />';
})
$('body').html(strHtml);
//attach data to image ID
$.each(data, function(i,item) {
$('#' + item.ID).data(item.ID, {
NAME: item.NAME,
PHONE: item.PHONE,
EMAIL: item.EMAIL,
ADDRESS: item.ADDRESS,
...
...
...
});
}
}
Dies funktioniert gut; jedoch sieht es ein wenig hässlich, und ich versuche es ein wenig in erster Linie auf diesem Teil aufzuräumen:
$.each(data, function(i,item) {
$('#' + item.ID).data(item.ID, {
NAME: item.NAME,
PHONE: item.PHONE,
EMAIL: item.EMAIL,
ADDRESS: item.ADDRESS,
...
...
...
});
}
ich ein Array von Objekt zu dem Schlüsselwert am addieren. Beispiel aus http://api.jquery.com/data/ $ ('body'). Data ('bar', {myType: 'test', count: 40});
Hier ist mein Versuch, es neu zu schreiben:
$.each(data, function(i,item) {
$('#' + item.ID).data(item.ID, function(){
$.each(item) {
return i + ':' item[i];
}
})
}
Gibt es einen sauberen Weg, dies zu schreiben? Ich habe auch versucht, $ ('#' + item.ID) .data (item.ID, JSON.stringify (Daten));
Das ist, was ich brauche .data (Schlüssel, obj) und ich war nur .data (Schlüssel, Wert) denken nur. – nolabel
@nolabel - Sie sollten mit diesem Ansatz, viel einfacher auch eingestellt werden :) –
Danke Nick! Jeder Schlüssel muss in meinem Fall eindeutig sein. B/c Ich muss die Daten in Bezug auf ihre ID aufrufen. – nolabel