Rails 6 javascript文件不是';不能正确地抓取html元素

Rails 6 javascript文件不是';不能正确地抓取html元素,javascript,html,jquery,ruby-on-rails,Javascript,Html,Jquery,Ruby On Rails,Javascript的新特性。我正在按照javascript教程创建一个简单的TictaToe游戏,并尝试将代码改编为在Rails上工作 我有一个JavaScript文件,其中包含一个函数,该函数应该在单击cell元素后运行 当我加载页面时,控制台中的console.log(“script js file loaded”)会显示script js file loaded,因此我知道正在加载javascript文件 我怀疑rails js语法与vanilla js有点不同 app/views/ti

Javascript的新特性。我正在按照javascript教程创建一个简单的TictaToe游戏,并尝试将代码改编为在Rails上工作

我有一个JavaScript文件,其中包含一个函数,该函数应该在单击
cell
元素后运行

当我加载页面时,控制台中的
console.log(“script js file loaded”)
会显示
script js file loaded
,因此我知道正在加载javascript文件

我怀疑rails js语法与vanilla js有点不同

app/views/tictactoe/index.html.erb

<%= javascript_pack_tag 'script' %>

<div class="board" id="board">
    <!--- add data cell so can access in javascript   -->
    <div class="cell" data-cell></div>
    <div class="cell" data-cell></div>
    <div class="cell" data-cell></div>
    <div class="cell" data-cell></div>
    <div class="cell" data-cell></div>
    <div class="cell" data-cell></div>
    <div class="cell" data-cell></div>
    <div class="cell" data-cell></div>
    <div class="cell" data-cell></div>

</div>

非常感谢您的帮助。

@numbers1311407是正确的,在
应用程序.html.erb
中,您可以使用
延迟:true
在加载DOM后运行JS

<%= javascript_pack_tag 'application', defer: true %>

1st off,js是js;“rails js”没有什么特别之处。你的特殊问题只是秩序问题。您的脚本在您查询的DOM之前加载,因此您的脚本无效。将脚本移到正文末尾是常见的做法(出于这个原因和其他原因),应该可以解决您的问题。有关更多详细信息和替代做法,请参阅。
<%= javascript_pack_tag 'application', defer: true %>