如何访问链接的“previous”方法

How to I get access to the `previous` method for a link?

本文关键字:previous 方法 链接 何访问 访问      更新时间:2023-09-26

我正试图遵循嵌套模型表单的railscast,但在编写Java Script时遇到了问题。我已经使用Rails几个星期了,但这是我第一次遇到JavaScript,所以如果这听起来有点棘手,请原谅我。

我正试图按照强制转换的建议从表单中删除元素,但它给了我以下错误。(我正在使用Chrome的调试工具来查看错误(

未捕获的类型错误:Object[Object Object]没有方法"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设置不正确。

希望有人能指出我所缺少的平凡的细节。

谢谢!!

我想您可能正在寻找.prev()。此外,您应该使用.val()来使用jQuery设置字段值。

$(link).prev("input[type=hidden]").val("1");