jquery 参数传递和赋值问题

jquery 参数传递和赋值问题

<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#btn1").click(function(){
$("#test1").text(function(i,origText){
return "Old text: " + origText + " New text: Hello world! (index: " + i + ")"; 
});
});

$("#btn2").click(function(){
$("#test2").html(function(i,origText){
return "Old html: " + origText + " New html: Hello <b>world!</b> (index: " + i + ")"; 
});
});

});
</script>
</head>

<body>
<p id="test1">这是<b>粗体</b>文本。</p>
<p id="test2">这是另一段<b>粗体</b>文本。</p>
<button id="btn1">显示旧/新文本</button>
<button id="btn2">显示旧/新 HTML</button>
</body>
</html>

代码的目的是点击按钮显示以前的内容加上后加的内容
我的问题是
$("#test1").text(function(i,origText){
return "Old text: " + origText + " New text: Hello world! (index: " + i + ")"; 
});
中的“origText”变量的内容是从哪里来的,我没看到有地方把原来的内容作为参数传递进去

解答:

这个是关于html使用回调函数的,在jquery中,使用$("***").html(function(){}),其中的function可以带参数,第一个参数是你使用***是匹配出来的元素的index,第二个参数是你使用***匹配出来的控件的.text()内容,也就是和你的命名没有关系的,你可以写成:

$("#text1").html(function(index,text){});

如果你的$("#text1")改成$("p")的话,由于你页面有两个<p>,那么对应的,第一个index=0,第二个index=1,text也自然就是两个P各自对应的内容了,附件中有改动后的东西,你点击一下就明白了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值