【问题标题】:Use jQuery map function's result in a chain在链中使用 jQuery 映射函数的结果
【发布时间】:2014-05-23 08:15:30
【问题描述】:

当我打电话时:

var result = inputs.map(function(){ return $(this).val(); });

result 包含一个数组,如:

['foo', 'bar', 'buz']

我要加入结果:

result.join(', ');

有效,但是

var result = inputs.map(function(){ return $(this).val(); }).join(', ');

给予

TypeError: undefined is not a function

我的问题是理论上的 - 为什么我不能访问链中的结果数组,我必须在处理结果之前将它分配给变量?

【问题讨论】:

    标签: jquery


    【解决方案1】:

    jQuery 的.map 方法的结果不是一个数组,它是一个jQuery 集合。使用.get() 返回集合内容的数组。

    var result = inputs.map(function(){ return $(this).val(); }).get().join(', ');
    

    【讨论】:

    • 谢谢 - 结果的类型确实是 object 但控制台将它显示为一个数组。
    • 是的,jQuery 使它的集合看起来像控制台中的数组。我第一次遇到这种情况时感到很困惑。
    【解决方案2】:

    因为返回的值是一个没有join方法的jQuery包装数组,所以你应该使用jQuery的get方法来获取数组。

    This 是一个相关问题。

    【讨论】:

      猜你喜欢
      • 2021-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-13
      • 1970-01-01
      • 2018-12-21
      • 1970-01-01
      相关资源
      最近更新 更多