在ejs模板中包含.js文件以操作DOM无效

时间:2019-01-09 05:29:48

标签: node.js express ejs

我想在我的ejs模板中添加一个事件监听器。 在我的app.js中,我包含了以下代码:

app.use(express.static(__dirname+"/public"));
app.use(bodyParser.urlencoded({extended: true}));
app.set("view engine", "ejs");

在我的ejs临时目录中有以下内容

<script type="text/javascrpit" src="/js/show.js"></script>

我的show.js也是如此:

a=document.querySelector(".name")
a.style.color="pink"

我的文档结构是这样的:

 app.js
 /public
  /js
    /show.js
  /css

包含的CSS可以正常工作,但js不能

这是我的ejs模板,效果很好:

<p class="name">Click this</p>
<script>
     a=document.querySelector(".name")
     a.style.color="pink"
</script>

1 个答案:

答案 0 :(得分:0)

使用示例进行的操作基本上是在页面加载后立即将color:pink应用于段落。如果您想在该段落上创建一个事件侦听器,以便在单击它时它将变成粉红色,则可以执行以下操作。

<p class="name" onclick="changeColor()">Click this</p>
<script>
   function changeColor(){
          var a = document.querySelector(".name")
          a.style.color="pink"
   }

</script>

希望这会有所帮助!