0

我有一个标签列表。我想获取每个标签中的文本并将文本连接到一个逗号分隔的字符串中。这是我所拥有的:

var listArray = $("#filter_tag_list lable").map(function(){return $(this).text()})
var listString = listArray.join();

在控制台中,我可以看到 listArray 由看起来正确的数组组成:["test input 1", "test input 2"]。但我得到一个TypeError: Object [object Object] has no method 'join'. 请注意,如果我手动创建一个数组a = ["test input 1", "test input 2"],那么a.join()就可以了。

我对 listArray 的输入没有什么了解???

4

2 回答 2

3

jQuerymap不返回数组,它返回一个jQuery 对象。使用.get()at 将 jQuery 对象转换为真正的数组:

var listArray = $("#filter_tag_list lable").map(function() {
    return $(this).text();
}).get(); // <----

var listString = listArray.join();

这在文档中有所概述:

由于返回值是一个 jQuery 对象,其中包含一个数组,因此在结果上调用 .get() 以使用基本数组是很常见的。

于 2013-04-26T17:18:09.770 回答
1

jQuery map 返回一个对象,因此您必须首先使用以下方法转换为数组toArray

var listArray = $("#filter_tag_list lable").map(function(){return $(this).text()}).toArray();
于 2013-04-26T17:19:01.317 回答