Javascript 如何使用从node js控制器发送的变量替换悬停时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]。我试着用上面的脚本来做

我的EJS文件中有以下代码片段(作为节点应用程序的一部分)


  • $('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>