Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.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 .each(函数{}.split和.attr_Javascript_Jquery - Fatal编程技术网

Javascript .each(函数{}.split和.attr

Javascript .each(函数{}.split和.attr,javascript,jquery,Javascript,Jquery,我最近在学习如何编程动画画廊时遇到了这些代码,但我不知道它们的含义: var items = $('#gallery li'), itemsByTags = {}; items.each(function(i){ var elem = $(this), tags = elem.data('tags').split(','); //Add data attribute for quicksand elem.attr('

我最近在学习如何编程动画画廊时遇到了这些代码,但我不知道它们的含义:

var items = $('#gallery li'),
        itemsByTags = {};
items.each(function(i){
        var elem = $(this),
        tags = elem.data('tags').split(',');        
//Add data attribute for quicksand
        elem.attr('data-id',i);
我知道var items=$'gallery li',itemsByTags={};意味着我通过jQuery获取列表ID,然后将名为itemsByTags的变量设置为空字符串

在哪些项之后。每个项都是一个循环,设计用于运行所有列表。但我不知道什么是函数i?为什么函数中有一个i?这是什么

还有,$这是什么意思?它指的是物品吗


最后,.attr对于内部的i意味着什么?

作为一个警告,像这样的问题在堆栈溢出上不太受重视,因为它们可以通过访问关于您正在使用的函数的单个页面来回答,在这种情况下,这就是问题的答案。像这样的问题经常被否决,永远不会得到答案,所以在在发布问题时,您应该始终检查文档中您正在使用的代码或库,以查看您的问题是否已经在那里得到了回答

有了这些,以下几点将有助于回答您的问题:

itemsByTags={};将变量设置为空对象,而不是字符串。但是,您提供的代码中没有使用此变量,因此它与手头的问题不太相关

items.eachfunctioni{如您所述,是一个设计用于循环遍历项目数组的函数。每个函数通常输出两个不同的值,一个键和一个值。但是,在这种情况下,函数调用中只提供一个变量,因此该函数将只接收第一个值,即键。键是所选项目编号的基于0的索引已启用。每次移动到数组中的下一个项目时,此数字将增加1。另一种解释方法是,数组[key]将返回数组中项目编号键处的值

$这是jQuery引用当前正在从数组中检索的对象的方式。因为var items=$'gallery li'检索页面中与选择器gallery li匹配的所有对象的列表,$这是指正在检索其数组元素的页面中的实际对象。$这可以在相同的w中修改和操作是的,就像您使用普通选择器(如$'gallery li'.eqi)将其作为目标一样

现在,您可能已经准确地确定了最后一行正在执行的操作。$this.attr'data-id',i;在页面中查找当前数组项的元素,并将其数据id属性设置为相对于其同级的基于0的索引。如果您以这种方式迭代数组,则第六个(例如$'gallery li'元素的数据id属性)将为chan他被降到5岁


希望这有帮助!

将问题标题更改为更好的顺序!浏览此url以了解其工作原理。jquery中的每一项都是这样的:您考虑过了吗?如果您在考虑之后还有问题,请告诉我们。