w3schools style practices method guidelines code best php jquery debugging

php - style - jquery best practices



jQuery: print_r() pantalla equivalente? (8)

Posible duplicado:
Formateo de datos de JavaScript / impresora bonita

Me estoy cansando de mirar blobs JSON sin formato en FireBug.

¿Alguien sabe un equivalente de print_r () de PHP para jQuery?

¿Algo que haría de forma recursiva una cadena de visualización de un objeto o matriz, que podría mostrar en la página para una depuración rápida?

¡Gracias!


¿Qué tal algo así como:

<script src=''http://code.jquery.com/jquery-latest.js''></script> function print_r(o){ return JSON.stringify(o,null,''/t'').replace(//n/g,''<br>'').replace(//t/g,''&nbsp;&nbsp;&nbsp;''); }


El comentario principal tiene un enlace roto a la documentación de console.log para Firebug, así que aquí hay console.log . Empecé a usarlo y estoy bastante satisfecho con él como una alternativa a print_r () de PHP.

También es de destacar que Firebug le brinda acceso a objetos JSON devueltos incluso sin que usted los haya iniciado manualmente:

  • En la consola, puede ver la URL de la respuesta AJAX.
  • Haga clic en el triángulo para expandir la respuesta y ver detalles.
  • Haga clic en la pestaña JSON en los detalles.
  • Verá los datos de respuesta organizados con triángulos de expansión.

Este método toma un par de clics más para obtener los datos, pero no requiere ninguna adición en su javascript real y no cambia su enfoque en Firebug fuera de la consola (usando console.log crea un enlace a la sección DOM de firebug , lo que le obliga a volver a hacer clic en la consola después).

Por mi dinero prefiero hacer clic un par de veces más cuando quiero inspeccionar en lugar de perder el tiempo con el registro, sobre todo porque mantiene la consola limpia al no agregar ningún cruft adicional.




Podría usar una reflection muy fácil para enumerar todas las propiedades, métodos y valores.

Para los navegadores basados ​​en Gecko puedes usar el método .toSource ():

var data = new Object(); data["firstname"] = "John"; data["lastname"] = "Smith"; data["age"] = 21; alert(data.toSource()); //Will return "({firstname:"John", lastname:"Smith", age:21})"

Pero como usas Firebug, ¿por qué no usas console.log?


También puedes hacer

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

donde a y b son objetos.



$.each(myobject, function(key, element) { alert(''key: '' + key + ''/n'' + ''value: '' + element); });

Esto hace el trabajo por mí. :)