我正在解构一个名为 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/