Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在不使用任何库的情况下在一组所有匹配元素中的双大括号之间显示数据?_Javascript_Braces - Fatal编程技术网

Javascript 如何在不使用任何库的情况下在一组所有匹配元素中的双大括号之间显示数据?

Javascript 如何在不使用任何库的情况下在一组所有匹配元素中的双大括号之间显示数据?,javascript,braces,Javascript,Braces,我想做一个函数,可以做这样的事情: HTML: <h1 class="demo">I am {{ name }}</h1> <span class="demo">{{ name }} learn JavaScript</span> 输出: I am Arc Arc learn JavaScript 可以创建data()函数来执行此操作吗?我不想仅仅为了使用这个函数而使用任何外部库 使用正则表达式将HTML中的{{..}s替换为传递的对象

我想做一个函数,可以做这样的事情:

HTML:

 <h1 class="demo">I am {{ name }}</h1>
 <span class="demo">{{ name }} learn JavaScript</span>
输出:

 I am Arc
 Arc learn JavaScript

可以创建data()函数来执行此操作吗?我不想仅仅为了使用这个函数而使用任何外部库

使用正则表达式将HTML中的
{{..}
s替换为传递的对象中的适当值(如果有):

const data=(选择器,obj)=>{
document.querySelectorAll(selector.forEach((elm)=>{
elm.textContent=elm.textContent.replace(
/{{*(\w+*}}}/g,
//如果钥匙在obj中,则替换为值
//否则,替换为匹配项(不进行更改):
(匹配,键)=>对象中的键?对象[键]:匹配
);
});
};
数据(“.demo”{
名称:“Arc”
});
我是{{name}

{{name}学习JavaScript
欢迎来到堆栈溢出!请拿着(你得到了一枚徽章!)通读一下,尤其是你最好的选择是做你的研究,做相关的主题,然后试一试。如果你在做了更多的研究和搜索后陷入困境,无法摆脱困境,请发布一份你的尝试,并明确指出你陷入困境的地方。人们会很乐意提供帮助。在这样的元素上分配到
textContent
,将清除其子元素。为了避免破坏性的更改,您需要在节点级别工作,而不是在元素级别。我有一个问题:如何插入Html来代替文本?例如,数据(“.demo”,{name:“Arc”})@ArcanadianArc这会更复杂。如果没有嵌套元素,或者嵌套元素没有需要保留的内容,请重新指定容器的
innerHTML
,而不是它的
textContent
,我突然想到一件事。这能做到吗?e、 g.数据(“.demo”,{name:{age:{12}});在HTML中{name.age}
 I am Arc
 Arc learn JavaScript