jQuery不附加对象值

时间:2015-10-06 20:24:37

标签: javascript jquery

所以我现在正在构建一个随机引用生成器,每当我尝试从我的对象追加值时,它就会返回:

[object Object]

这是我的代码:

$("#quoteBubble").append("<p>" + quotes[Math.floor(Math.random() * quotes.length)] + "</p>");

此外,这是我的对象/数组的总体布局:

var quotes = [{
"quote": "eeyyy sik beets yo.",
"author": "Jamen Marz"
},

如果有人在这里可以帮助我解决我的问题,那将非常感激:D

修改:这是指向我的CodePen的链接 - http://codepen.io/Jelani/pen/ojYZaa?editors=101

3 个答案:

答案 0 :(得分:3)

你有一个对象数组,所以

quotes[Math.floor(Math.random() * quotes.length)]

将返回该数组中的一个对象,如

{
    "quote": "eeyyy sik beets yo.",
    "author": "Jamen Marz"
}

原样,您的代码正在尝试打印对象本身,而不是您在其中定义的属性之一。因此,您需要指定要打印的属性,即

quotes[Math.floor(Math.random() * quotes.length)].quote 
//or
quotes[Math.floor(Math.random() * quotes.length)].author

答案 1 :(得分:3)

您需要访问该酒店。将其更改为 $("#quoteBubble").append("<p>" + quotes[Math.floor(Math.random() * quotes.length)].quote + "</p>");访问引用属性

或者如果你真的想得到对象的字符串符号,请使用JSON.stringify(...)

$("#quoteBubble").append("<p>" + JSON.stringify(quotes[Math.floor(Math.random() * quotes.length)]) + "</p>");

答案 2 :(得分:2)

这是因为你的quote变量实际上是一个对象数组。因此,调用quotes[0]会带来一个具有两个属性的对象。调用quotes[n].quote将自带引号,并且调用quote[n].author将使作者从同一引号中获取。 (0