Javascript 返回多个替换项
我需要在客户端替换多个不同的文本字符串 比如说,我想用“橙黄色”来代替“红苹果”,用“快乐的狗”来代替“悲伤的猫” 我一直在尝试扩展以处理多个替换Javascript 返回多个替换项,javascript,jquery,Javascript,Jquery,我需要在客户端替换多个不同的文本字符串 比如说,我想用“橙黄色”来代替“红苹果”,用“快乐的狗”来代替“悲伤的猫” 我一直在尝试扩展以处理多个替换 $("#container h3 a").text(function () { return $(this).text().replace("Red Apple", "Orange Orange"); return $(this).text().replace("Sad Cat", "Happy Dog"); }); $("#contai
$("#container h3 a").text(function () {
return $(this).text().replace("Red Apple", "Orange Orange");
return $(this).text().replace("Sad Cat", "Happy Dog");
});
$("#container h3 a").text(function () {
return $(this).text().replace("Red Apple", "Orange Orange").replace("Sad Cat", "Happy Dog");
});
我发现只有第一个替换品被退回
我在计算如何返回倍数时遇到了困难,也没有得到像这样理想的结果
return {
...
}
不存在这种情况的理由:请注意,我并不是在尝试只替换苹果,而是替换猫。您的第一个
返回值
结束函数。第二个返回值
从未到达
但你可以把替代品链起来
$("#container h3 a").text(function () {
return $(this).text().replace("Red Apple", "Orange Orange");
return $(this).text().replace("Sad Cat", "Happy Dog");
});
$("#container h3 a").text(function () {
return $(this).text().replace("Red Apple", "Orange Orange").replace("Sad Cat", "Happy Dog");
});
您的第一次
返回
结束函数。第二个返回值
从未到达
但你可以把替代品链起来
$("#container h3 a").text(function () {
return $(this).text().replace("Red Apple", "Orange Orange");
return $(this).text().replace("Sad Cat", "Happy Dog");
});
$("#container h3 a").text(function () {
return $(this).text().replace("Red Apple", "Orange Orange").replace("Sad Cat", "Happy Dog");
});
一旦代码到达
return
语句,之后的代码将不会被处理return
将控制权直接返回给调用方代码
作为:
return语句结束函数执行并指定要执行的值
返回给函数调用方
您可以通过以下几种方式处理此类问题:
$("#container h3 a").text(function () {
// Work on your return value as much as you want
var retVal = $(this).text();
retVal = retVal.replace("Red Apple", "Orange Orange");
retVal = retVal.replace("Sad Cat", "Happy Dog");
return retVal; // And then return it (just once)
});
请注意,这种方法绝对没有错,因为它易于阅读和理解。.replace()
调用链接起来,因为每次调用.replace()
时,它都会返回一个新字符串,然后可以调用.replace()
。最后一个字符串将作为原始return
实际发送回的值返回:
$("#container h3 a").text(function () {
return $(this).text().replace("Red Apple", "Orange Orange")
.replace("Sad Cat", "Happy Dog");
});
请注意,这种方法实现了完全相同的功能,但它更紧凑、更精确,并且不需要临时存储变量。一旦代码到达
return
语句,之后的代码将不会被处理return
将控制权直接返回给调用方代码
作为:
return语句结束函数执行并指定要执行的值
返回给函数调用方
您可以通过以下几种方式处理此类问题:
$("#container h3 a").text(function () {
// Work on your return value as much as you want
var retVal = $(this).text();
retVal = retVal.replace("Red Apple", "Orange Orange");
retVal = retVal.replace("Sad Cat", "Happy Dog");
return retVal; // And then return it (just once)
});
请注意,这种方法绝对没有错,因为它易于阅读和理解。.replace()
调用链接起来,因为每次调用.replace()
时,它都会返回一个新字符串,然后可以调用.replace()
。最后一个字符串将作为原始return
实际发送回的值返回:
$("#container h3 a").text(function () {
return $(this).text().replace("Red Apple", "Orange Orange")
.replace("Sad Cat", "Happy Dog");
});
请注意,这种方法实现了完全相同的功能,但它更紧凑、更精确,并且不需要临时存储变量。我认为您应该能够通过在一个return语句中调用replace两次来实现这一点
return $(this).text().replace("Red Apple", "Orange Orange").replace("Sad Cat", "Happy Dog");
我认为您应该能够通过在一个return语句中调用replace两次来实现这一点
return $(this).text().replace("Red Apple", "Orange Orange").replace("Sad Cat", "Happy Dog");
对值得补充的是,@AllInOne的代码被破坏的原因是一个函数在返回时实际上结束了。值得补充的是,@AllInOne的代码被破坏的原因是,函数一旦返回,它就会有效地结束。您的第二次返回永远不会达到,因为您第一次已经从函数返回。@dave我已经添加了我的理由,说明这不是重复的。您的第二次返回永远不会达到,因为您已经返回了第一次返回函数。@dave我已经添加了我的理由,说明这不是重复的。