我正在从一本名为Head First jQuery 的书中学习 jQuery。这本书很容易学习。关键是,有一个.each()
函数(包含在我从 扫描的图像中),它有一个 function() 参数。function() 参数是index
和value
。索引在页面上有说明,但是值呢?而且,由于它是一个匿名函数(不能重用),它如何接受任何参数?
问问题
25950 次
2 回答
19
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 is 0”和“Sampson is 1”,因为我们使用的是从零开始的索引。
但是我们的原生 jQuery 对象呢?
$("p").each(function(index, value){
alert( value.textContent ); // The text from within the paragraph
});
在这种情况下,value
是一个实际的对象,所以如果我们愿意,我们可以访问类似或的HTMLParagraphElement
属性:textContent
innerText
于 2012-06-11T08:35:00.277 回答
1
您称为 value 的第二个参数是每个函数当前处理的集合的值。
对于您的第二个问题 - 可以重用匿名函数,仅仅因为它们没有名称并不意味着它们不能有参数或被执行。请参见以下示例:
function execute_fn(fn) {
fn(1,2);
}
execute_fn(function(a,b) { ... });
于 2012-06-10T12:49:33.740 回答