38 Stimmen

Wie kann ich ein Objekt mit einem alert() anzeigen?

Ich habe versucht, eine Fehlersuche durchzuführen, aber ich habe Probleme. Jetzt versuche ich es mit alert() . Zum Beispiel möchte ich den Wert von sehen:

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

Wenn ich sage alert(product) es gibt mir nur [object Object] . Wie kann ich erreichen, dass der Alarm zeigt, was wirklich da ist?

86voto

Pranay Rana Punkte 170480

Können Sie die JSON.stringify() Methode, die in modernen Browsern zu finden ist und die von json2.js .

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

ou

Sehen Sie sich auch diese Bibliothek an: http://devpro.it/JSON/files/JSON-js.html

11voto

aya Punkte 1567

Können Sie die Methode toSource wie folgt verwenden

alert(product.toSource());

4voto

Aron Rotteveel Punkte 77486

Wenn Sie den Inhalt von Objekten während der Fehlersuche leicht einsehen wollen, installieren Sie ein Werkzeug wie Firebug und verwenden console.log :

console.log(product);

Wenn Sie die Eigenschaften des Objekts selbst anzeigen möchten, sollten Sie nicht alert das Objekt, sondern seine Eigenschaften:

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

Wie gesagt, Wenn Sie Ihr JavaScript-Debugging wirklich verbessern wollen, verwenden Sie Firefox mit dem Firebug-Addon. Sie werden sich fragen, wie Sie Ihren Code jemals zuvor debuggen konnten.

3voto

KooiInc Punkte 111454

Das verwende ich:

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

Wenn Sie auch verschachtelte Objekte anzeigen möchten, können Sie etwas Rekursives verwenden:

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;
}

2voto

Znarkus Punkte 22226

Sie sollten wirklich Firebug oder die Konsole von Webkit zum Debuggen verwenden. Dann können Sie einfach console.debug(product); und untersuchen Sie das Objekt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X