如果我在 Filter() 函数中使用索引,我会得到一个未定义的引用错误吗?

will I get a undefined reference error if I use index in Filter() function?

本文关键字:未定义 一个 错误 引用 函数 Filter 如果 索引      更新时间:2023-09-26

这是我在前端拥有的

<ul>
<li><strong>list</strong> item 1 - one strong tag</li>
<li><strong>list</strong> item <strong>2</strong> -
two <span>strong tags</span></li>
<li>list item 3</li>
<li>list item 4</li>
<li>list item 5</li>
<li>list item 6</li>
</ul>

我有一个Jquery可以做一些简单的过滤

$( "li" )
.filter(function( index ) {
return index % 3 === 2;
})
.css( "background-color", "red" );

我的问题是,索引会得到一个未定义的错误吗?或者索引会自动分配给DOM中每个li元素的位置?请指教。

非常感谢

我认为查看某些东西是否有效的最好方法是尝试一下。这样:

$(function() {
  $("li").filter(function(index) {
      return index % 3 === 2;
    })
    .css("background-color", "red");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li><strong>list</strong> item 1 - one strong tag</li>
  <li><strong>list</strong> item <strong>2</strong> - two <span>strong tags</span>
  </li>
  <li>list item 3</li>
  <li>list item 4</li>
  <li>list item 5</li>
  <li>list item 6</li>
</ul>

不,您不会收到错误。您可以像使用它一样使用它。就像文档说的那样。所以不用担心,没事。我们还可以利用通过函数传递的索引,该索引指示元素在未过滤的匹配元素集中从 0 开始的位置:

$( "li" )
  .filter(function( index ) {
    return index % 3 === 2;
  })
    .css( "background-color", "red" );

对代码的这种更改将导致突出显示第三个和第六个列表项,因为它使用模运算符 (%( 来选择索引值的每个项,当除以 3 时,余数为 2。