&lt; %%&gt;中定义的访问变量来自<script> </script>

时间:2016-03-29 12:12:17

标签: javascript jquery html node.js ejs

我将变量title传递给我的html文档,然后像这样访问它:

<h2><%= title %></h2> 

如何在<script>标记内访问相同的变量? 我尝试了以下但它给了我一个错误:

<script>
    console.log(title);
</script>

未捕获的ReferenceError:未定义标题

这是因为变量的范围不同吗?

修改 我希望在这篇文章中保持简单,但根据答案,我意识到我应该提到我使用外部文件作为我的脚本:

<script src="/javascripts/script.js"></script>

在这个脚本中,我使用jQuery来处理一些事情,我需要变量title

4 个答案:

答案 0 :(得分:3)

由于模板的性质,您无法在渲染输出中访问模板变量。但是,您可以呈现一个同名的javascript变量,该变量设置为模板变量的文字值。例如:

<script>
  var title = <%- JSON.stringify(title) %>;
  console.log(title);
</script>

答案 1 :(得分:0)

您必须执行shown is this answer之类的操作。

<script>
  var title = <%- JSON.stringify(title) %>;
</script>

答案 2 :(得分:0)

  

如何在<script>代码中访问相同的变量?

你做不到。运行在服务器上的程序中的变量无法由客户端上运行的程序访问。

由于您已将复制变量的值复制到页面的DOM中,因此您可以读取从那里保存的值

console.log(document.querySelector('title').firstChild.data);

答案 3 :(得分:0)

我是这样定义的-

<body>
<h2 style = "visibility:hidden" id = "events"><%= events %></h2> 

<script>

function initMap (){

var list =document.getElementById('events').innerHTML ;
      console.log("list = ", list)
}
</script>