提问人:SD1990 提问时间:8/19/2011 最后编辑:RSKSD1990 更新时间:8/19/2011 访问量:880
与使用 jquery 在此表中追加相反
The opposite of append in this table using jquery
问:
我需要与这段代码相反:
if( $('#effort_<%= @project_task.id %>').length == 0 )
$('#task_list').append('<tr><td><%= @project_task.project.project_number %> <%= @project_task.project.project_name %> - <%= @project_task.task_name %></td>' +
'<td><%= text_field :effort, :hours, :name => 'effort_' + @project_task.id.to_s, :id => 'effort_' + @project_task.id.to_s %></td>' +
'<td><%= link_to image_tag('icons/delete.png'), :method => :destroy, :remote => true %></td></tr>' );
$('#effort_<%= @project_task.id.to_s %>').change( function() { submiteffort( this, <%= @project_task.id.to_s %>); } );
当用户单击“删除”按钮时,需要删除表的该行。 我知道您可以使用 .remove() 但我不确定如何使用它,因为我是 RoR 的新手。
答:
0赞
Henry
8/19/2011
#1
下面是一个基本示例,说明您想要如何执行。我希望你不介意,但我已经把它剥离到最基本的骨头,但它应该让你对从哪里开始有一个很好的了解。
JSFiddle:http://jsfiddle.net/saceh/1/
<button id="Add">Add Row</button>
<hr>
<table id="TaskList">
</table>
<script>
// RowId is not important, just used to show you that rows are dynamically added
var RowId = 0;
$("#Add").click(function (e) {
$("#TaskList").append("<tr><td>" + RowId + "</td><td><button id='Delete'>Delete</button></td></tr>");
RowId++;
});
$("#Delete").click(function(e) {
var Row = $(this).parents('tr');
$(Row).remove();
});
单击“删除”时,它会找到父行并将其删除,而“添加”会执行类似于您当前正在执行的操作。
0赞
Bas Slagter
8/19/2011
#2
可以使用父方法(添加一些标识符)指向要删除的行,然后使用 remove 方法实际删除它。
1赞
Baz1nga
8/19/2011
#3
假设你的删除在每行的 TR 中,你需要做这样的事情
如果 close buttton/image 有一个类 close,则像这样在其上绑定一个事件
$('close').live("click",function()
{
$(this).parents("tr").remove(); //this here is referring to the button
});
2赞
Behrang Saeedzadeh
8/19/2011
#4
你可以做这样的事情:
$("#task_list a").live("click", function(event) {
$(event.target).closest("tr").remove();
});
确保使用最接近
的。 将返回所有祖先,因此如果您有嵌套表,它可能会删除比需要更多的节点。 是最安全的选择。parents
tr
closest
评论