0

我尝试从 这个片段中的jquery api理解这个例子

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

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

未捕获的类型错误:对象 [对象对象] 没有方法“加入”

为什么加入不能与地图一起使用?

4

2 回答 2

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

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

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

调用 将get带有字符串列表(由 返回map)的 jQuery 对象转换为普通的 JS 数组是必要的,因此它可以与join.

于 2012-07-03T14:27:10.253 回答
0

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

您的函数返回 jquery 数组,需要将其转换为 js plain

.Get() - 这样做。

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

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

在此处输入图像描述

于 2012-07-03T14:18:10.520 回答