2013-04-03 140 views
0

下面的例子中,前兩個返回[對象,對象],但第三回報什麼,我希望從第二,這是「下一步」在大多數情況下,數組返回爲[object,object]。這是什麼意思?

alert(sceChoicesArr); 

alert(sceChoicesArr[0]); 

alert(sceChoicesArr[0].text()); 

這裏是正在創建數組:

var sceChoicesArr = []; 

$(xml).find('choice').each(function(){sceChoicesArr.push($(this));}); 

這裏的XML的一點它在該行尋找上面:

<choice>Next</choice> 

我想吐出陣列成HTML,我不斷WRI除了這個頁面上的例子:Display all items in array using jquery以及這個:http://jsfiddle.net/chrisabrams/hYQm4/,但這些例子似乎都沒有能夠拉出數組內的值,因爲當我用警報檢查它時, m越來越是[object,object]

所以我的問題是,什麼是[對象,對象],以及爲什麼我會得到,而不是「下一步」?

在我看來,我的數組的唯一價值應該等同於[「下一步」]

+5

這意味着它是一個對象,並且警報不是一個調試工具。 – adeneo 2013-04-03 19:29:19

+0

使用'console.log'而不是'alert',這樣你就可以查看整個對象。 – 2013-04-03 19:42:55

回答

1

在代碼中,你正在使用sceChoicesArr.push($(this));。這是推動jQuery對象到陣列。

alert被隱式地調用Object.prototype.toStringsceChoicesArr,其中,當在對象上被調用,返回"[object Object]"

而不是使用:

sceChoicesArr.push($(this)); 

使用:

sceChoicesArr.push($(this).text()); 

然後得到一個 「可讀」 的形式排列:

sceChoicesArr.join(", ") 

或者繼續推動$(this) ,然後得到一個「可讀」的表格,使用:

var readableArr = $.map(sceChoicesArr, function (value, index) { 
    return $(value).text(); 
}); 

這將返回一個只有每個元素的文本的新數組。然後,只需使用:

readableArr.join(", ") 

如果你只是想查看您的數組的內容(而不是使用其他地方),你可以使用console.log(sceChoicesArr);應提供您的變量的一個有用的概述。

+0

或者只是使用控制檯? – adeneo 2013-04-03 19:46:10

+0

@ adeneo你沒有給我足夠的時間:)我不確定他們是否想從開發者的角度看它的內容(看屏幕)還是需要它在代碼/頁面的其他地方 – Ian 2013-04-03 19:51:02

相關問題