Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么是;获取();在这个例子中有必要吗?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么是;获取();在这个例子中有必要吗?

Javascript 为什么是;获取();在这个例子中有必要吗?,javascript,jquery,Javascript,Jquery,我试着从另一个角度来理解这个例子 在这个片段中 var tags = this.map(function () { return this.tagName; }) .get().join(", "); 为什么get()是必需的? 在中,它表示get()检索与jQuery对象匹配的DOM元素。在本例中,我看到get()不是应用于jq对象,而是应用于字符串。 当我删除get()时,会收到以下错误消息: 未捕获的TypeError:对象

我试着从另一个角度来理解这个例子 在这个片段中

        var tags = this.map(function () {
        return this.tagName;
    })
            .get().join(", ");
为什么get()是必需的? 在中,它表示get()检索与jQuery对象匹配的DOM元素。在本例中,我看到get()不是应用于jq对象,而是应用于字符串。 当我删除get()时,会收到以下错误消息:

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


为什么join不能与map一起使用?

join
用于数组(纯js数组)

函数返回需要转换为js平原的jquery数组

.Get()
-这样做

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

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

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

  • get
    的调用返回这些字符串的普通JS数组,
    join
    对该数组进行操作


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

“return this.tagName;”这是jq对象吗?@AladdinHoms No,但调用
.map()
的结果是jQuery对象。调用
.get()
从jQuery对象内部的元素(在本例中为文本节点)创建一个本机Javascript数组,允许您使用
join()
,它是数组的本机Javascript函数,而不是jQuery函数。join实际上是一个数组函数,get返回相当于包含字符串的jQuery对象的数组。@Yoshi你说得对,我只是在重新阅读我的评论,想知道我到底为什么说文本节点,因为我根本不想说这些。