为了账号安全,请及时绑定邮箱和手机立即绑定

.text( function(index, text)和.html( function(index, oldhtml) )的用法

$(".left a:first").text(function(index,text){
    return '增加新的文本内容' + text
 })

这里面的function怎么理解啊?匿名函数没有传入参数,那么函数返回的值增加的text是什么呢?没有传入index参数,难道index是js或jQuery的关键字?


正在回答

4 回答

应该先去了解一下什么是回调函数,回调函数不是我们自己调用的,而是在运行过程中程序自动调用的.举个例子,一个点击事件,鼠标点击一下,程序会调用一个方法,方法里面有几个参数,其中鼠标的x,y轴位置,这都是程序自动跳上去的,程序自动调用函数,自动把参数填上。这里也是,这个匿名函数你根本没有调用,index和text都是程序自己填上的。

http://img1.sycdn.imooc.com//58b8f7680001ed3111220261.jpg

6 回复 有任何疑惑可以回复我~
#1

JohnieXu 提问者

非常感谢!
2017-03-03 回复 有任何疑惑可以回复我~

 $(".left a:first").text(function(idnex,text){

            return '增加新的文本内容' + text

        });

这里的index 其实就是下标 简单的来说就是在哪个地方开始新增内容 但是 为什么是在第二个盒子里面 新增了内容了  其实你好好想一想 你就会发现的是  第一个盒子的子节点 都已经被替换成html的元素了  而这里的需求是增加内容  所以和元素毫无关系  接着程序就会往下运行 找到第二个盒子 这时就增加成功了   如果不相信的朋友可以先把$(".left div:first").html('整个div的子节点都被替换了')这句话先注释了  运行看看效果  你就知道了

1 回复 有任何疑惑可以回复我~

这里的index应该就是指数组下标   也就是:first   也就是0   如果没有return  那它就是0  有了return以后就把return里的值放到了index,然后这个index应该是这个函数自带的参数    。。应该是这样的  如果有什么不对请私密我帮我改正  谢谢

1 回复 有任何疑惑可以回复我~
#1

JohnieXu 提问者

你这么说我更懵了
2017-03-01 回复 有任何疑惑可以回复我~
#2

qq_半人类 回复 JohnieXu 提问者

参数是这个函数自带的 它代表的就是数组下标,第一个也就是0了 如果有返回值就会把这个0替换掉 没有就默认是0了
2017-03-01 回复 有任何疑惑可以回复我~
#3

qq_半人类 回复 JohnieXu 提问者

比如text这些函数都自带index这个参数
2017-03-01 回复 有任何疑惑可以回复我~
#4

qq_半人类 回复 JohnieXu 提问者

也不一定非要是index,你可以换成别的看看比如x或者y 参数名也许可以不是这个 但是参数的含义应该就是这个
2017-03-01 回复 有任何疑惑可以回复我~
查看1条回复
  1. 首先text()是一个方法

  2. text()方法可以传参数

  3. 参数分为变量(如:index)和函数(如:function(){})

  4. 这里是text()方法传递一个参数是一个带参数的函数

3 回复 有任何疑惑可以回复我~
#1

JohnieXu 提问者

不理解这里函数的参数和返回值(つд⊂)
2017-03-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

.text( function(index, text)和.html( function(index, oldhtml) )的用法

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信