使用jQuery替换模板字面量中的特定单词是否可行?
问题解答
首先得明确你的场景,分两种情况来看:
1. 模板字面量已渲染为DOM文本
如果${Group[1].Names[1].NickName}已经执行并把结果渲染到#someDiv里,你用这段jQuery代码只能替换显示出来的文本内容,而不是模板字面量本身的代码。比如如果渲染后文本是"张三",那替换不会有任何效果;只有当渲染后的文本里正好包含"NickName"这个字符串时,才会被替换成"CoolName"——这显然不是你要的效果。
2. 模板字面量是未执行的字符串
如果你的模板字面量是以字符串形式存在(比如存在某个变量里,或是模板字符串的源码),那直接对字符串做替换是可行的,但要注意大小写匹配:你例子里模板里是NickName(首字母大写N,末尾大写N),但replace里写的是Nickname(末尾小写n),这会匹配不到,得改成:
// 假设templateStr是包含模板字面量的字符串 const modifiedTemplate = templateStr.replace('NickName', 'CoolName');
之后再执行这个修改后的模板字符串,就能得到替换后的结果。
关于你写的jQuery代码的问题
你那段代码针对的是DOM元素的文本内容,和模板字面量的代码逻辑完全是两回事。如果你的目标是修改模板里的属性名(从NickName改成CoolName),那这段代码根本达不到目的,因为它操作的是渲染后的结果,不是模板本身。
内容的提问来源于stack exchange,提问作者emilien
相关产品推荐
相关产品推荐

