在jquery中,$ .each是什么意思?

时间:2010-01-16 06:04:57

标签: jquery

以下是什么意思?

$.each(json.results, function(i, item) {
    ...
}

我对这条线的其他部分有所了解,但如果你能解释一下,我会很感激。

4 个答案:

答案 0 :(得分:3)

$.each提供了一个简单的迭代器,它将为数组中的每个元素执行一次回调函数。

对于我的例子,我们假设:

var json = {
   results: [1, 2, 3]
};

除了使用参数(index, item)之外,每个回调中的this变量都可用于引用当前项目。

更新:此示例已更改为显示其他参数的使用:

$.each( json.results, function(index, item){
   console.log(this + " " + index + " " + item);
});
// Outputs:
// 1 0 1
// 2 1 2
// 3 2 3

第一个参数是循环中当前项的索引。它是一个基于零的索引。 second 参数是当前迭代的项目。您可以使用this或变量,但变量在以下情况下派上用场:

$.each (json.results, function(index, item){
   // this == number
   // item == number
   $('div').click(function(e){
      // this == div
      // item == number
   });
});

此外,您可以使用一些类似于breakcontinue语句的控件。

如果您想在任何时候continuenext,请使用return true;

$.each( json.results, function(i, item){
  if(this == 2) return true;
  // do something else
});

如果您想break,请使用return false;

var f;
$.each( json.results, function(i, item){
   if(this == 2){
      f = this;
      return false; // exits the iterator
   }
});

答案 1 :(得分:1)

这只是意味着您希望使用json.results中的每个结果执行某些操作。在花括号中,this知道您正在处理的当前结果,因此您可以执行以下操作:

var json = { 'results':{'name':'jonathan', 'age':'26'} };

$.each(json.results, function(i,o){
  alert(this);
  // First iteration : 'Jonathan'
  // Second Iteration: '26'
});

答案 2 :(得分:0)

$。每个基本上都是一个迭代习语,类似于javascripts:

for (x in container)

除了迭代值而不是键(或数组中的索引)。

答案 3 :(得分:0)

迭代对象的成员。一个例子:

var obj = {
    alpha : 'A',
    beta : 'B',
    3 : 'C'
};

$.each(obj, function(key, val) {
    console.log(key);    // alpha, beta, 3
    console.log(val);    // A, B, C
    console.log(this);   // A, B, C
});

编辑:实际上上面是this上下文的一个不好的例子,因为如果你的值是一个字符串或数字,它会从文字(“C”)转换为一个对象(new String(“ C“)),但对于其他事物(函数,元素,数组等),它没有受到影响。