为什么在这个例子中“get()”是必要的?

时间:2012-07-03 14:16:54

标签: javascript jquery

我尝试从jquery api了解此示例 在这个片段

        var tags = this.map(function () {
        return this.tagName;
    })
            .get().join(", ");

为什么get()是必要的? 在api中,它表示get()检索jQuery对象匹配的DOM元素。在这种情况下,我看到get()不适用于jq对象,而是应用于字符串。 当我删除get()时,我收到此错误消息:

  

未捕获的TypeError:对象[object Object]没有方法' join'

为什么加入无法使用地图?

2 个答案:

答案 0 :(得分:2)

  • 这里,this是带有节点列表的jQuery对象。 (jQuery.fn中的所有函数都将其上下文(即this)设置为调用函数的jQuery对象。)

  • map的调用返回带有字符串列表的jQuery对象。 (您可能会混淆jQuery的map函数与ECMAScript 5中引入的map数组函数,)

  • get的调用返回这些字符串的普通JS数组,join作用于该数组。

调用get对于将jQuery对象转换为一个字符串列表(由map返回)转换为普通的JS数组是必要的,因此它可以与join粘合在一起。

答案 1 :(得分:0)

join用于数组(纯js数组)。

你的函数返回需要转换为js plain

的jquery数组

.Get() - 那样做。

http://api.jquery.com/get/

  

检索与jQuery对象匹配的DOM元素。

enter image description here