如何使用jQuery $.each遍历对象字面量并替换指定字符串?
解决jQuery $.each遍历对象替换字符串的问题
嘿,我来帮你搞定这个问题~你之前的代码没生效,核心原因是你只返回了替换后的字符串,但没有把这个新值写回原对象的对应属性里,所以原对象foo根本没被修改。
正确的写法思路
在$.each的回调函数中,拿到每个属性的key和value后,执行字符串替换,然后把替换后的结果赋值给foo[key],这样原对象的内容才会被更新。
完整代码示例
首先是你的原始对象:
var foo = { item1: "Mary had a little lamb", item2: "Whose fleece was white as snow", item3: "Johnny ha a little lamb", item4: "What's the deal with lambs?" };
然后是修改后的$.each代码:
$.each(foo, function(key, value){ // 将替换后的值赋值回原对象的对应属性,完成修改 foo[key] = value.replace(/lamb/g, "lion"); });
补充说明
- 我在正则里加了
g修饰符,这是为了替换字符串中所有匹配的"lamb";如果你的需求只是替换每个字符串里的第一个"lamb",去掉g就可以了。 - 执行完这段代码后,你可以通过
console.log(foo)查看,原对象里的"lamb"已经全部变成"lion"啦。
内容的提问来源于stack exchange,提问作者user1837608
相关产品推荐
相关产品推荐

