Pour une raison quelconque, j'ai cet énorme pet de cerveau aujourd'hui. >. <Quelle est une meilleure façon de réécrire ce fichier JSON en données jQuery()?
J'ai une des données JSON que je joins à l'utilisation de jQuery .data() qui ressemble à ceci:
$.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,
...
...
...
});
}
}
Cela fonctionne bien; cependant, il semble un peu laid et je suis en train de nettoyer un peu surtout sur cette partie:
$.each(data, function(i,item) {
$('#' + item.ID).data(item.ID, {
NAME: item.NAME,
PHONE: item.PHONE,
EMAIL: item.EMAIL,
ADDRESS: item.ADDRESS,
...
...
...
});
}
J'ajoute un tableau d'objet à la valeur de clé. Exemple de http://api.jquery.com/data/ $ ('body'). Data ('bar', {myType: 'test', nombre: 40});
Voici ma tentative de réécrire:
$.each(data, function(i,item) {
$('#' + item.ID).data(item.ID, function(){
$.each(item) {
return i + ':' item[i];
}
})
}
est-il un moyen plus propre d'écrire cela? J'ai aussi essayé $ ('#' + item.ID) .data (item.ID, JSON.stringify (data));
C'est ce que je dois .data (clé, obj) et je ne pensais .data (clé, valeur) uniquement. – nolabel
@nolabel - vous devriez être tous ensemble avec cette approche, beaucoup plus simple aussi :) –
Merci Nick! Chaque clé doit être unique dans mon cas. B/c Je dois appeler les données par rapport à son identifiant. – nolabel