Jquery Can';t对某些元素的值调用.join()

Jquery Can';t对某些元素的值调用.join(),jquery,arrays,join,Jquery,Arrays,Join,我有一个变量selectedTagNames,我这样设置: var selectedTagNames = $(".js-tag-name:checked").map(function(){return $(this).val()}); selectedTagNames => ["song:age_suitability=11-13", "song:age_suitability=5-7"] 它显示为一个数组。我想用“| |”将这些值合并成一个字符串,但我不能: var searchTe

我有一个变量
selectedTagNames
,我这样设置:

var selectedTagNames = $(".js-tag-name:checked").map(function(){return $(this).val()});

selectedTagNames
=> ["song:age_suitability=11-13", "song:age_suitability=5-7"]
它显示为一个数组。我想用“| |”将这些值合并成一个字符串,但我不能:

var searchTerm = selectedTagNames.join('||')
=> VM7234:2 Uncaught TypeError: undefined is not a function
message:  "undefined is not a function"
stack: (...)get stack: function () { [native code] }
set stack: function () { [native code] }__proto__: Error
我可以手动执行,而不是使用变量:

["song:age_suitability=11-13", "song:age_suitability=5-7"].join('||')
=> "song:age_suitability=11-13||song:age_suitability=5-7"
因此,该变量的值必须与我在第二个示例中使用的数组不同,即使它看起来是相同的。它们都只是为
typeof()
返回“object”

我使用的是jquery版本1.7.1

有人能告诉我吗 a) 这是怎么回事? b) 如何将所选复选框的值收集到一个数组中,这样我就可以看到有多少个复选框,并将它们连接在一起,避免出现任何错误

$(选择器).map()返回类似数组的对象,类似于jQuery从选择器返回的对象

您需要的是静态方法:

$.map($('.js-tag-name:checked'), function(el) {
    return $(el).val();
});
$(选择器).map()返回类似数组的对象,类似于jQuery从选择器返回的对象

您需要的是静态方法:

$.map($('.js-tag-name:checked'), function(el) {
    return $(el).val();
});
.map()
返回jQuery集合,而不是数组。您可以通过对结果调用
.get()
将其转换为数组

var selectedTagNames = $(".js-tag-name:checked").map(function(){
    return $(this).val()
}).get();
.map()
返回jQuery集合,而不是数组。您可以通过对结果调用
.get()
将其转换为数组

var selectedTagNames = $(".js-tag-name:checked").map(function(){
    return $(this).val()
}).get();

啊..谢谢!如果允许的话,我们会尽快把这个标记正确:)啊..谢谢!将尽快将其标记为正确:)