我正在尝试遵循嵌套模型表单的 railscast,但在编写Java Script. 我已经工作Rails了几个星期,但这是我第一次遇到JavaScript,如果这听起来有点无趣,请原谅我。
我正在尝试按照演员表的建议从表单中删除元素,但它给了我以下错误。(我正在使用 Chrome 的调试工具查看错误)
Uncaught TypeError: Object [object Object] has no method 'previous' application.js?body=1:10222
remove_class_row application.js?body=1:10222
onclick read:95
这是我的观点,/app_root/app/views/classifications/read.html.erb:
<table id="classification_read_table">
    <tr ><td id="classification_read_table_td">
        <b>Classification</b>
    </td></tr>
    <%= form_tag read_build_path  %>
        <% @classes.each do |f| %>
            <div class="class_row">
                <tr >
                    <td class="classification_read_table_td">
                        <%= fields_for "class_is[]", f do |g| %>
                        <%= g.label :name %>
                        <%= g.text_field :name %>
                        <%= g.hidden_field :_destroy%>
                        <%= link_to_function "remove", "remove_class_row(this)" %>
                    </td>
                </tr>
            </div>
        <% end %>
    <% end %>
</table>
这是我的 JS 文件 app_root/app/assets/javascript/application.js:
function remove_class_row(link) {
    $(link).previous("input[type=hidden]").value = "1"; //Error on this line: 
    $(link).up(".class_row").hide();
}
我正在做 javascript,就像 rails cast 显示的那样,所以我不明白可能出了什么问题。我的第一个想法是,我正在尝试做的事情被弃用了吗?或者由于某种原因,我的 HTML 没有以正确的方式设置。
希望有人能指出我遗漏的平凡细节。
谢谢!!