jQuery.each(function(index,value){});什么是价值?

时间:2012-06-10 12:08:34

标签: jquery

我正在从一本名为Head First jQuery的书中学习jQuery。这本书很容易学习。关键是,有一个.each()函数(包含在我从中扫描的图像中),它有一个function()参数。 function()参数是indexvalue。索引在页面上解释,但值是什么?而且,由于它是一个匿名函数(不能重复使用),它如何采用任何参数?

2 个答案:

答案 0 :(得分:18)

jQuery中有两个each方法。一个用于循环包含许多匹配的jQuery对象。例如,假设我们想在页面上找到所有段落:

$("p").each(function(){
    // Do something with each paragraph
});

其次,有一个更通用的each用于迭代对象或数组:

var names = ["Jonathan", "Sampson"];
$.each(names, function(){
    // Do something with each name
});

当jQuery循环遍历其中任何一个示例中的元素时,它会统计它当前正在处理的对象。当它执行我们的匿名函数时,它会传递两个参数 - 我们正在使用的当前值(索引)和该对象(值)。

var names = ["Jonathan", "Sampson"];
$.each(names, function(index, value){
    alert( value + " is " + index );
});

由于我们使用的是从零开始的索引,因此输出“Jonathan为0”,“Sampson为1”。

但是我们的原生jQuery对象呢?

$("p").each(function(index, value){
    alert( value.textContent ); // The text from within the paragraph
});

在这种情况下,value是一个实际的HTMLParagraphElement对象,因此如果我们愿意,我们可以访问textContentinnerText等属性:

答案 1 :(得分:1)

您称之为值的第二个paremter是当前由每个函数处理的集合的

对于你的第二个问题 - 匿名函数可以重用,只是因为它们没有名称并不意味着它们不能有参数或被执行。请参阅以下示例:

function execute_fn(fn) {
  fn(1,2);
}

execute_fn(function(a,b) { ... });