索引属性,与事件对象的定义和区别

时间:2017-02-11 12:22:29

标签: javascript jquery

在学习jquery时,我看到了这个例子:

 $( "li" ).each(function( index ) {
  console.log( index + ": " + $( this ).text() );
});

我的第一个问题是索引属性的确切功能。在这个例子中很明显,但我也看到了像 delay(700 * index)这样的例子。索引属性在这里做什么?

我的第二个问题可能有点模糊,但我会尽量保持清醒。在函数括号中,您还可以将事件对象用作参数,根据我的理解,您可以为其指定任何名称。那么,解释器如何知道索引参数,不仅仅是我给事件对象的名字?

1 个答案:

答案 0 :(得分:0)

重要的是要理解each函数将回调函数作为参数。此回调函数还接​​受参数 - index ,在这种情况下,它将是<li>元素的索引号。

因此,例如,如果您有4个<li>元素,each函数将创建4次迭代,每次迭代将递增 index 参数,从0开始。

另一个要理解的重要事情是索引参数不是你可以控制的,它是在each函数中定义的 - 如果你将它的名字改为 event < / em>它实际上会改变在该回调中传递的对象。您可以将其称为 i 事件,它仍然是索引。 事件参数由事件监听器(例如onmousedownonclick等中的回调函数传递。

希望这有帮助

<小时/> 的更新

以下是对所有<li>元素使用click事件的方法。

$('li').click(function(event){
  console.log($(this).html());
})
li {
  cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li>I am the first List element</li>
  <li>I am the second List element</li>
  <li>I am the third List element</li>
  <li>I am the fourth List element</li>
</ul>