jquery 中的变量问题,请进来看看!

njstalk 2010-01-19 01:30:39
我是菜鸟,最近网上看了一篇jQuery中文入门指南,里面有如下语句:
$(document).ready(function() {
$("#orderedlist").find("li").each(function(i) {
$(this).html( $(this).html() + " BAM! " + i );
});
});

这里面的变量 i 怎么没有定义也可以用呢?
或者是库里面已经定义了?在哪里能看到已经定义的变量和常量呢?谢谢!
...全文
86 8 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
草根醉秋意 2010-01-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ilwm1984 的回复:]
可以这么理解:
function(i) {
              $(this).html( $(this).html() + " BAM! " + i );
        }
返回的是一个匿名函数。因此,i是这个匿名函数的形参而已。你也可以改成j啦、K啦,***啦。
而库函数each的参数需要一个函数(指针、委托)。

需要注意的是,each里执行的函数,  索引(也就是i)是在参数的第一个。你也可以再加上一个参数(指向li的JQuery对象:
function(i,dom)
{
  dom.html(dom.html()+"BAM!"+i);
}
[/Quote]
第二个参数是元素对象,而不是jq对象

function(i,dom)
{
//dom.html(dom.html()+"BAM!"+i);
alert(this==dom);//true
}
草根醉秋意 2010-01-19
  • 打赏
  • 举报
回复
$.each(callback)

以每一个匹配的元素作为上下文来执行一个函数。

意味着,每次执行传递进来的函数时,函数中的this关键字都指向一个不同的DOM元素(每次都是一个不同的匹配元素)。而且,在每次执行函数时,都会给函数传递一个表示作为执行环境的元素在匹配的元素集合中所处位置的数字值作为参数(从零开始的整形)。 返回 'false' 将停止循环 (就像在普通的循环中使用 'break')。返回 'true' 跳至下一个循环(就像在普通的循环中使用'continue')。
jeremyxuzz 2010-01-19
  • 打赏
  • 举报
回复
可以这么理解:
function(i) {
$(this).html( $(this).html() + " BAM! " + i );
}
返回的是一个匿名函数。因此,i是这个匿名函数的形参而已。你也可以改成j啦、K啦,***啦。
而库函数each的参数需要一个函数(指针、委托)。

需要注意的是,each里执行的函数, 索引(也就是i)是在参数的第一个。你也可以再加上一个参数(指向li的JQuery对象:
function(i,dom)
{
dom.html(dom.html()+"BAM!"+i);
}
licip 2010-01-19
  • 打赏
  • 举报
回复
这是jquery内部定义的一个函数。那个i是li的个数序号。
itliyi 2010-01-19
  • 打赏
  • 举报
回复
遍历<li>
xmliy 2010-01-19
  • 打赏
  • 举报
回复
i在函数调用的时候传入的,想要知道这些,可以去看帮助文档或研究jQuery的源代码
itliyi 2010-01-19
  • 打赏
  • 举报
回复
是索引 类似
for(var i=...){
}
njstalk 2010-01-19
  • 打赏
  • 举报
回复
谢谢大家!
相关推荐
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2010-01-19 01:30
社区公告
暂无公告