javascript - 在 Jquery/javascript 的控制台中理解 "slice"

标签 javascript jquery

我正在解构一个名为 Unslider.js 的 carasoul 插件,并且我很难理解一小段代码,所以我在这里遇到了堆栈溢出。

我的困难是理解下面这行:

target = li.eq(index);

让我们分析一下,

目标是一个变量。

li 是一个对象,实际上让我澄清一下 li 是什么,之前在 Jquery 中使用 find() 方法的代码中返回一组子元素,所以基本上 li 是一组 <li>元素。

接下来,eq常用于进一步过滤元素。

index 当然是当前元素(但我不确定这种解释)。

所以基本上我理解下面这行:

        target = li.eq(index);

target是当前的li元素,对吗,我是这么认为的。

好吧,让我们继续讨论我真正的困难是什么,当我 console.log(target) 时,我得到以下结果:

"taget is" unslider.js:285
Object { length: 0, prevObject: Object, context: <div.banner>, selector: ">ul >li.slice(3,4)" } unslider.js:286
"taget is" unslider.js:285
Object { 0: <li>, length: 1, prevObject: Object, context: <div.banner>, selector: ">ul >li.slice(1,2)" } unslider.js:286
"taget is" unslider.js:285
Object { 0: <li>, length: 1, prevObject: Object, context: <div.banner>, selector: ">ul >li.slice(2,3)" } unslider.js:286
"taget is" unslider.js:285
Object { length: 0, prevObject: Object, context: <div.banner>, selector: ">ul >li.slice(3,4)" } unslider.js:286
"taget is" unslider.js:285
Object { 0: <li>, length: 1, prevObject: Object, context: <div.banner>, selector: ">ul >li.slice(1,2)" } unslider.js:286
"taget is" unslider.js:285
Object { 0: <li>, length: 1, prevObject: Object, context: <div.banner>, selector: ">ul >li.slice(2,3)" } unslider.js:286
"taget is" unslider.js:285
Object { length: 0, prevObject: Object, context: <div.banner>, selector: ">ul >li.slice(3,4)" } unslider.js:286
"taget is" unslider.js:285
Object { 0: <li>, length: 1, prevObject: Object, context: <div.banner>, selector: ">ul >li.slice(1,2)" } unslider.js:286
"taget is" unslider.js:285
Object { 0: <li>, length: 1, prevObject: Object, context: <div.banner>, selector: ">ul >li.slice(2,3)" } unslider.js:286
"taget is" unslider.js:285
Object { length: 0, prevObject: Object, context: <div.banner>, selector: ">ul >li.slice(3,4)" } unslider.js:286
"taget is" unslider.js:285
Object { 0: <li>, length: 1, prevObject: Object, context: <div.banner>, selector: ">ul >li.slice(1,2)" }

现在这行是什么意思..

selector: ">ul >li.slice(3,4)", 

我的意思是 slice(3,4) 部分,该部分随着不同的值而不断变化!如果有人能过来解释那是什么,那就太好了。

谢谢。

亚历山大.

最佳答案

切片用于返回数组的子集。在这种情况下,值始终以一分隔,因此它将返回单个元素的数组。

var li = ['a','b','c','d'];
console.log(li.slice(2,3));
>  ['c']

所以这只是从列表中选择一个元素的一种方法,但通常也适用于选择一系列元素。

关于javascript - 在 Jquery/javascript 的控制台中理解 "slice",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28371216/

相关文章:

javascript - 获取最后一个子元素之前的内部文本

javascript - 放入输入文件时填写文件详细信息

javascript - 如何使用 Joi 清理 hapi 的查询参数?

javascript - 关于从 DOM 对象中 trim 大量文本的建议

javascript - phonegap geocoder.geocode 从结果中获取门牌号

jquery - 带有多个选择的 web.py Json

jquery - 如何使用jquery插件裁剪图像

javascript - 更改标签的属性值

php - 在 jquery 中处理分页的问题

javascript - JavaScript音频分析语音