Javascript 如何使用从node js控制器发送的变量替换悬停时EJS模板中的文本?
我的EJS文件中有以下代码片段(作为节点应用程序的一部分)Javascript 如何使用从node js控制器发送的变量替换悬停时EJS模板中的文本?,javascript,jquery,html,node.js,ejs,Javascript,Jquery,Html,Node.js,Ejs,我的EJS文件中有以下代码片段(作为节点应用程序的一部分) $('li')。悬停( 函数(){ 常量doc_text=$('.plain').text() const doc_mapping=my_dict[doc_text] $(this).replacetwith(doc\u映射); } ); 这里,my_dict是一个字典,documents是一个从我的节点js控制器传递过来的数组 我基本上需要将循环中每个标记的文本替换为悬停时的文本my_dict[text]。我试着用上面的脚本来做
$('li')。悬停(
函数(){
常量doc_text=$('.plain').text()
const doc_mapping=my_dict[doc_text]
$(this).replacetwith(doc\u映射);
}
);
这里,my_dict
是一个字典,documents
是一个从我的节点js控制器传递过来的数组
我基本上需要将循环中每个
标记的文本替换为悬停时的文本my_dict[text]
。我试着用上面的脚本来做,但它不起作用。我还尝试将文本包含在保持隐藏的
标记中,并使用它替换文本。但是每次我将鼠标悬停在
标记中的文本上,它就会被循环中所有标记中的所有文本所取代。可能是因为我无法将每个
唯一地映射到每个
标记
非常感谢您的帮助 如果我很了解你的问题,这里有一个简单的解决方案
<% for(var i = 0; i < documents.length; i++) { %>
<li onmouseenter="hover(this, '<%= my_dict[documents[i]] %>')" onmouseleave="hover(this, '<%= documents[i] %>')"><%= documents[i] %></li>
<h4 hidden> <%= my_dict[documents[i]] %></h4>
<% } %>
<script>
function hover(el, str) {
el.innerHTML = str;
}
</script>
“>
函数悬停(el、str){
el.innerHTML=str;
}
<% for(var i = 0; i < documents.length; i++) { %>
<li onmouseenter="hover(this, '<%= my_dict[documents[i]] %>')" onmouseleave="hover(this, '<%= documents[i] %>')"><%= documents[i] %></li>
<h4 hidden> <%= my_dict[documents[i]] %></h4>
<% } %>
<script>
function hover(el, str) {
el.innerHTML = str;
}
</script>