尝试从我的对象数组中获取文本内容。
var array = [
first = {
name: 'first',
color: 'red',
},
second = {
name: 'second',
color: 'green',
},
third = {
name: 'third',
color: 'blue',
},
];
$('.first').text(first);
$('.second').text(second);
$('.third').text(third);
但我得到了:
[object Object]
似乎无法在任何地方找到答案,我错过了一些明显的东西吗?
答案 0 :(得分:0)
您正在调用JSON对象。您可以使用点符号抓取对象中的内容,如:
$('.first').text(first.name + first.color);
$('.second').text(second.name + second.color);
$('.third').text(third.name + third.color);
如果您确实要打印出对象,可以使用JSON.stringify()
,如:
$('.first').text(JSON.stringify(first));
$('.second').text(JSON.stringify(second));
$('.third').text(JSON.stringify(third));
答案 1 :(得分:0)
首先,如果设置了"use strict"
模式,代码将会中断,因为您正在隐式创建全局变量。
其次,当您调用方法.text()
并设置值时,它需要string
或function
值,然后在这种情况下调用方法toString()
对于返回first, second, third
的对象"[object Object]"
隐式,其中Object
是对象类型。
现在,创建数组的正确方法是:
var list = [
{ name: "first", color: "red" },
{ name: "second", color: "green" }
];
或创建变量:
var first = { name: "first", color: "red" };
var second = { name: "second", color: "green" };
var list = [first, second];
现在我们有了JavaScript对象,我们可以创建JSON字符串,以便将它们传递给.text()
方法。
$(".first").text(JSON.stringify(list[0]));
// Or...
$(".first").text(JSON.stringify(first));
PD:您也可以override the methods toString()
and valueOf()
,但这种方法更多是OOP。