2011-04-22 12 views
31

Intenté hacer una depuración pero estoy teniendo problemas. Ahora intento con alert(). Por ejemplo, yo quiero ver el valor de:¿Cómo puedo ver un objeto con una alerta()

var product = { ProductName: $('!Answer_Response[0]').val(), 
        UnitPrice: $('#Price').val(), 
        Stock: $('#Stock').val() 
       }; 

Cuando digo alert(product) que sólo me da [object Object]. ¿Cómo puedo hacer que la alerta muestre qué hay realmente allí?

+1

si desea comprobar cualquier consola uso de objetos.log (producto), esto mostrará su objeto en las herramientas de desarrollo del navegador como Firebug en Firefox. –

+0

posible duplicado de [¿Cómo puedo mostrar un objeto de JavaScript?] (Http://stackoverflow.com/questions/957537/how-can-i-display-a-javascript-object) –

Respuesta

61

puede utilizar el método JSON.stringify() encontrado en los navegadores modernos y proporcionada por json2.js.

var myObj = {"myProp":"Hello"}; 
alert (JSON.stringify(myObj)); // alerts {"myProp":"Hello"}; 

o

También puedes ver esta biblioteca: http://devpro.it/JSON/files/JSON-js.html

+0

que no le dará los valores reales de las propiedades – KooiInc

+0

@KooiInc ¿Qué quiere decir? Esto funcionó bien para mi. – spiel

+4

@spiel: le da una * representación de cadena * usando JavaScript Object Notation. Eso puede ser suficiente aquí, pero si la instancia contiene métodos (funciones), no se mostrarán. – KooiInc

0
alert (product.UnitName + " " + product.UnitPrice + " " + product.Stock) 

o bien crear un método toString() en el objeto y llamar

alert(product.toString()) 

Pero tengo que estar de acuerdo con otras críticas - si está depurando que vamos a dar a continuación incendiario o F12 en IE9 o el cromo y el uso de console.log es el camino a seguir

4

Si desea ver fácilmente el contenido de los objetos durante la depuración, instalar una herramienta como Firebug y utilizar console.log:

console.log(product); 

Si desea ver las propiedades del objeto en sí mismo, NO alert el objeto, pero sus propiedades:

alert(product.ProductName); 
alert(product.UnitPrice); 
// etc... (or combine them) 

Como se ha dicho, si realmente desea aumentar su depuración de JavaScript, el uso Firefox con el complemento Firebug. Se preguntará cómo alguna vez depuró su código antes.

+0

Gracias. Ahora he agregado firebug. La salida de la consola es buena, pero ¿puedo hacer más con ella? ¿Puedo acceder al código o ver mi javascript? – Melova1985

+0

@Melova seguro que puedes. Lea los documentos de Firebug ya que este es un tema demasiado amplio para analizarlo aquí. –

+0

Gracias. Haré esto. Que tengas un gran día. – Melova1985

2

Esto es lo que yo uso:

var result = []; 
for (var l in someObject){ 
    if (someObject.hasOwnProperty(l){ 
    result.push(l+': '+someObject[l]); 
    } 
} 
alert(result.join('\n')); 

Si desea mostrar objetos anidados demasiado, podría utilizar algo recursiva:

function alertObject(obj){ 
var result = []; 
function traverse(obj){ 
for (var l in obj){ 
    if (obj.hasOwnProperty(l)){ 
    if (obj[l] instanceof Object){ 
     result.push(l+'=>[object]'); 
     traverse(obj[l]); 
    } else { 
     result.push(l+': '+obj[l]); 
    } 
    } 
    } 
} 
traverse(obj); 
return result; 
} 
2

realmente debería utilizar la consola de Firebug o de Webkit para la depuración. Luego puede hacer console.debug(product); y examinar el objeto.

0

Dependiendo de la propiedad que usted está interesado en:

alert(product.ProductName); 
alert(product.UnitPrice); 
alert(product.Stock); 
0
alert(JSON.stringify(product)); 
11

puede utilizar el método toSource como esto

alert(product.toSource()); 
+1

gracias. justo lo que necesito –

+2

Funciona en FF y no en Chrome. Use JSON.stringify en su lugar. – JalalJaberi

0

el uso de JavaScript método nativo JSON.stringify. Para visualizar de una manera más agradable, se puede utilizar, como: JSON.stringify(obj,null, 4)

var obj = {data:[{"empmenuid":"1","empid":null,"deptid":"66","aliasid":"66","firstname":"66","lastname":"66","sin":"66","status":"66","empclass":"66","hiredate":"66","seneoritydate":"66","separationdate":"66"},{"empmenuid":"3","empid":null,"deptid":"12","aliasid":"12","firstname":"12","lastname":"12","sin":"12","status":"12","empclass":"12","hiredate":"12","seneoritydate":"12","separationdate":"12","recalldate":"12","martialstatus":"12","gender":"12","pager":"12","locid":"12","jobtitle":"12","jobtitlestart":"12","fullpart":"12","manager":"12","managername":"12","middlename":"12","nickname":"12","paytype":"12","payfreq":"12"}], 
 
recordType : 'object'}; 
 

 
alert(JSON.stringify(obj,null, 4));

Cuestiones relacionadas