以下是什么意思?
$.each(json.results, function(i, item) {
...
}
我对这条线的其他部分有所了解,但如果你能解释一下,我会很感激。
答案 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
});
});
此外,您可以使用一些类似于break
和continue
语句的控件。
如果您想在任何时候continue
或next
,请使用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“)),但对于其他事物(函数,元素,数组等),它没有受到影响。