64 votes

JQuery: Afficher l'équivalent de la fonction print_r()?

Possible Duplicate:
Formatage / imprimeur joli de données JavaScript

Je commence à en avoir assez de regarder des blocs JSON non formatés dans FireBug.

Est-ce que quelqu'un sait s'il existe l'équivalent de print_r() de PHP pour jQuery?

Quelque chose qui créerait de manière récursive une chaîne d'affichage à partir d'un objet ou d'un tableau, que je pourrais afficher sur la page pour un débogage rapide?

Merci!

69voto

Paolo Bergantino Points 199336

console.log est ce que j'utilise le plus souvent lors du débogage.

J'ai pu trouver cette extension jQuery cependant.

44voto

CMS Points 315406

Vous pourriez utiliser très facilement la réflexion pour lister toutes les propriétés, les méthodes et les valeurs.

Pour les navigateurs basés sur Gecko, vous pouvez utiliser la méthode .toSource() :

var data = new Object();
data["firstname"] = "John";
data["lastname"] = "Smith";
data["age"] = 21;

alert(data.toSource()); //Renvoiera "({firstname:"John", lastname:"Smith", age:21})"

Mais puisque vous utilisez Firebug, pourquoi ne pas simplement utiliser console.log ?

16voto

Que diriez-vous de quelque chose comme :

function print_r(o){
return JSON.stringify(o,null,'\t').replace(/\n/g,'').replace(/\t/g,'   '); }

9voto

Bill Zeller Points 1156

Vous pouvez également faire

console.log("a = %o, b = %o", a, b);

où a et b sont des objets.

5voto

jeremyclarke Points 123

Le commentaire principal comporte un lien brisé vers la documentation de console.log pour Firebug, donc voici un lien vers l'article du wiki sur Console. J'ai commencé à l'utiliser et je suis assez satisfait, c'est une alternative à print_r() de PHP.

À noter également que Firebug vous donne accès aux objets JSON retournés même sans que vous les ayez enregistrés manuellement :

  • Vous pouvez voir l'URL de la réponse AJAX dans la console.
  • Cliquez sur le triangle pour développer la réponse et voir les détails.
  • Cliquez sur l'onglet JSON dans les détails.
  • Vous verrez les données de la réponse organisées avec des triangles d'expansion.

Cette méthode nécessite quelques clics supplémentaires pour accéder aux données, mais ne nécessite aucune modification dans votre javascript réel et ne détourne pas votre attention de la console de Firebug (l'utilisation de console.log crée un lien vers la section DOM de firebug, ce qui vous force à cliquer pour revenir à la console après).

Pour ma part, je préfère cliquer quelques fois de plus lorsque je veux inspecter plutôt que de jouer avec le journal, surtout puisque cela garde la console propre en n'ajoutant pas de perte supplémentaire d'informations.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X