在下面的例子中,前两个返回[object,object],但第三个返回我对前两个的期望,即“Next”
alert(sceChoicesArr);
alert(sceChoicesArr[0]);
alert(sceChoicesArr[0].text());
这是正在创建的数组:
var sceChoicesArr = [];
$(xml).find('choice').each(function(){sceChoicesArr.push($(this));});
这里是xml在上面一行中寻找的内容:
<choice>Next</choice>
我正在尝试将数组吐出到html中,并且我一直在编写与此页面上的示例相似的内容:Display all items in array using jquery以及:http://jsfiddle.net/chrisabrams/hYQm4/但这些示例都不是似乎能够拉出数组中的值,就像我用警报检查它一样,我得到的只是[对象,对象]
所以我的问题是,[对象,对象]是什么,为什么我得到它而不是“下一步”?
在我看来,我的数组的唯一值应该等于[“Next”]
答案 0 :(得分:1)
在您的代码中,您使用的是sceChoicesArr.push($(this));
。这是将 jQuery对象推送到数组。
alert
隐含地使用Object.prototype.toString
调用sceChoicesArr
,当调用某个对象时,会返回"[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);
来提供有用的变量概述。