Jquery过滤器()与每个

时间:2016-06-13 12:38:02

标签: javascript jquery

jQuery filter()each()方法之间有什么区别。

因为两者都用于在集合上应用循环。

我听说过可以按集合类型过滤的filter()方法。

3 个答案:

答案 0 :(得分:2)

.each() =>它将简单地遍历所有记录

离。

 <ul>
     <li>list item 1</li>
     <li>list item 2</li>
     <li>list item 3</li>
     <li>list item 4</li>
     <li>list item 5</li>
     <li>list item 6</li>
  </ul>

  $(li).each(function() { // it will return all li and set its css
      $(this).css( "background-color", "red" );
  });

filter() =&gt;它只会返回满足某些条件的记录

离。

<ul>
  <li>list item 1</li>
  <li>list item 2</li>
  <li>list item 3</li>
  <li>list item 4</li>
  <li>list item 5</li>
  <li>list item 6</li>
</ul>

$( "li" ).filter( ":even" ).css( "background-color", "red" ); // it will only set css to even li

答案 1 :(得分:2)

$.filter返回符合给定条件的项集合,而$.each遍历项集合。

答案 2 :(得分:2)

我倾向于认为.each()是一种简化jQuery方式来声明for循环。

例如:

&#13;
&#13;
var i = 0;
$("#list1 li").each(function() {
  console.log("Looped through list item number: " + i++);
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<ul id="list1">
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
  <li>Item 4</li>
</ul>
&#13;
&#13;
&#13;

也可以在Vanilla JS中写成:

&#13;
&#13;
var list = document.getElementById("list2");
var items = list.getElementsByTagName("li");
for(var i = 0; i < items.length; i++) {
  console.log("Looped through item number: " + i);
}
&#13;
<ul id="list2">
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
  <li>Item 4</li>
</ul>
&#13;
&#13;
&#13;

使用filter()可以按照名称建议 - 按照以下方式过滤掉一组匹配的对象:

&#13;
&#13;
$("li").filter(":first-child").addClass("test");
&#13;
.test {
  background-color: yellow;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<ul>
  <li>Number 1</li>
  <li>Number 1</li>
  <li>Number 1</li>
  <li>Number 1</li>
</ul>
&#13;
&#13;
&#13;