Javascript 如何查看具有警报()的对象
我试图进行调试,但遇到问题。现在我尝试使用Javascript 如何查看具有警报()的对象,javascript,jquery,Javascript,Jquery,我试图进行调试,但遇到问题。现在我尝试使用alert()。例如,我希望看到以下值: var product = { ProductName: $('!Answer_Response[0]').val(), UnitPrice: $('#Price').val(), Stock: $('#Stock').val() }; 当我说警报(产品)时,它只会给我[对象]。我怎样才能使警报显示真正的情况 a
alert()
。例如,我希望看到以下值:
var product = { ProductName: $('!Answer_Response[0]').val(),
UnitPrice: $('#Price').val(),
Stock: $('#Stock').val()
};
当我说警报(产品)
时,它只会给我[对象]
。我怎样才能使警报显示真正的情况
alert (product.UnitName + " " + product.UnitPrice + " " + product.Stock)
或者在对象上创建一个toString()方法并调用
alert(product.toString())
但我必须同意其他海报-如果是调试,那么IE9或chrome上的firebug或F12以及使用console.log是一个不错的选择如果您想在调试时轻松查看对象的内容,请安装一个类似的工具并使用
console.log
:
console.log(product);
如果要查看对象本身的属性,请不要警告对象,而要查看其属性:
alert(product.ProductName);
alert(product.UnitPrice);
// etc... (or combine them)
如前所述,如果您真的想提高JavaScript调试效率,请使用Firefox和Firebug插件。您会想知道以前是如何调试代码的。这就是我使用的:
var result = [];
for (var l in someObject){
if (someObject.hasOwnProperty(l){
result.push(l+': '+someObject[l]);
}
}
alert(result.join('\n'));
如果还想显示嵌套对象,可以使用递归的方法:
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;
}
您应该真正使用Firebug或Webkit的控制台进行调试。然后你可以只做
console.debug(产品)编码>并检查对象。取决于您感兴趣的属性:
alert(product.ProductName);
alert(product.UnitPrice);
alert(product.Stock);
您可以使用现代浏览器中提供的JSON.stringify()
方法
或
还要检查此库:您可以使用这样的toSource方法
alert(product.toSource());
使用Javascript原生JSON.stringify
方法。要以更好的方式将其可视化,您可以使用,例如:JSON.stringify(obj,null,4)
var obj={data:[{“empmenuid”:“1”,“empid”:“null”,“deptid”:“66”,“lastname”:“66”,“lastname”:“66”,“sin”:“66”,“status”:“66”,“hiredate”:“66”,“seneoritydate”:“66”,“separationdate”:“66”},{“empmenuid”:“3”,“empid”:“null”,“deptid”:“12”,“firstname”:“12”,“lastname”:“12”,“sin,“hiredate:”12“,”seneoritydate:”12“,”分离日期“:”12“,”重新校准日期“:”12“,”性别“:”12“,”寻呼机“:”12“,”locid“:”12“,”职务头衔“:”12“,”职务开始“:”12“,”完整部分“:”12“,”经理“:”12“,”中间名“:”12“,”昵称“:”12“,”工资类型“:”12“,”工资频率“:”12”},
记录类型:'对象'};
警报(JSON.stringify(obj,null,4));
试试这个:
alert(JSON.parse(product) );
如果要检查任何对象,请使用console.log(产品),这将在浏览器的开发工具(如firefox中的firebug)中显示您的对象。可能的副本将不会为您提供properties@spiel:它使用Javascript对象表示法为您提供字符串表示。这在这里可能足够了,但如果实例包含方法(函数)它们将不会显示。@KooiInc感谢您快速而有用的回答:)谢谢。我现在添加了firebug。控制台输出很好,但我可以用它做更多的事情吗?我可以单步浏览代码或查看我的javascript吗?@Melova当然可以。阅读firebug文档,因为这是一个太广泛而无法在这里讨论的主题。谢谢。我会这样做的。祝您有愉快的一天sed FF浏览器代码为JSON。stringfy(对象)是警报消息中的完美显示JSON数组。它在FF上工作,而不是在Chrome上。请改用JSON.stringify。
alert(product.toSource());
alert(JSON.parse(product) );