我有一份标签清单。我想在每个标签中获取文本,并将文本连接成逗号分隔的字符串。这就是我所拥有的:
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的输入???
答案 0 :(得分:3)
jQuery的map
不返回数组,它返回jQuery object。使用.get()
将jQuery对象转换为真正的数组:
var listArray = $("#filter_tag_list lable").map(function() {
return $(this).text();
}).get(); // <----
var listString = listArray.join();
the documentation中列出了这一点:
由于返回值是一个包含数组的jQuery对象,因此在结果上调用.get()以使用基本数组是很常见的。
答案 1 :(得分:1)
jQuery map返回一个对象,因此必须先使用toArray
转换为数组:
var listArray = $("#filter_tag_list lable").map(function(){return $(this).text()}).toArray();