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

时间:2014-12-17 21:06:23

标签: javascript jquery

这就是我在前端的内容

<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元素的位置?请指教。

非常感谢

2 个答案:

答案 0 :(得分:1)

我认为看看是否有效的最好方法就是尝试它。像这样:

&#13;
&#13;
$(function() {
  $("li").filter(function(index) {
      return index % 3 === 2;
    })
    .css("background-color", "red");
});
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

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

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

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