2012-01-31 50 views
0

我有一个页面,列出了很多对象,每个对象都有一个单独的TR表格,还有一个用于保存该对象的单独表格。我想这样做,当用户点击该表的保存时,该行将从屏幕上移除(并保存)。使用jQuery和Rails3从大型列表中清除对象

保存并返回成功+错误的所有代码都可以正常工作,但我想要做的就是从列表中直观地移除该对象。用户可以在长列表中选择任意对象,而不仅仅是第一个或最后一个,所以当他们碰到提交时我需要任意淡化/删除任何东西。

这可能吗?下面是个别行的代码,页面可能有30多个这样的代码。

<tr class="objectRow"> 
<td> 
    <form accept-charset="UTF-8" action="/objects" class="new_object" data-remote="true" id="new_object" method="post"> 
     <......input select boxes go here...........> 
    <p><input id="object_submit" name="commit" type="submit" value="Create Object" /></p> 
    </form>   
</td> 
</tr> 

回答

1
("#object_submit").parent().parent().parent().parent().hide(); 

.closest() - 获取,选择器相匹配,开始在当前元素,并通过DOM树前进了第一个元素。

$("input [type=submit]").click(function(){ 
    $(this).closest('tr.objectRow').hide(); 
}); 
+0

不幸的是,这些工作都没有。我检查了'$(this)',它包含了整个DOMWindow,而不是当前的。第一行给出错误'#object_submit'没有父'(并且这不是一个非动态的方法?)。第二行不做任何事情,但如果我在控制台中尝试它,我得到一个错误'不能调用方法'toLowerCase'的未定义' – beeudoublez 2012-02-02 16:59:10