2015-10-06 67 views
2

所以我目前正在建設一個隨機報價發生器,每當我試圖從我的對象附加價值,它只是返回: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

您需要訪問該屬性。將其更改爲 $("#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>"); 
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 
2

這是因爲你的報價變量實際上是一個對象數組。因此,調用quotes[0]會帶來一個具有兩個屬性的對象。調用quotes[n].quote將自帶報價,並致電quote[n].author將使作者從相同的報價。 (0 < n < quotes.length)