我试图添加for( var market in json){
console.log(json[market]["rate"]);
}
单击删除按钮后删除行但它不起作用..
$tr.find('td').fadeOut(1000, function () {
$tr.remove();
ajax函数运行良好,行从数据库中删除..
答案 0 :(得分:0)
你的意思是这样吗?
success: function (result) {
var selector = "#"+ID;
$(selector ).fadeOut(1000);
setTimeout(function(){
$(selector ).remove()
}, 1000);
},
答案 1 :(得分:0)
您的代码将失败,因为您正在使用未在方法中定义的$tr
。 (如果你在外面定义它,那就更糟糕了。)
您必须能够访问存在删除按钮/链接的tr
。如果您使用onclick
事件处理程序来调用Delete方法,则可以将this
与您传递的ID一起传递给Delete方法,并从中获取访问权限。
jQuery closest
方法在这里很方便
<a href="#" onclick="Delete(someId,this)">Delete</a>
在js中
function Delete(id,t) {
$tr= $(t).closest("tr");
// make the ajax call
// Use $tr now in your ajax call's success event
$tr.find('td').fadeOut(700, function () {
$tr.remove();
});
}
如果您使用非营养性javascript来绑定删除按钮/链接的click
事件,则可以使用$(this)
来获取对所点击项目的引用。在这种情况下,您实际上可以构建url以删除其中包含id的操作方法,并将其设置为链接的href值
<td>
<a href="@Url.Action("Delete",new { id=1234})" class="delete-item">Delete</a>
</td>
将1234
替换为代码中的实际ID值
在js文件中,您可以使用attr
方法读取所点击链接的网址。
$(function () {
$("a.delete-item").click(function(e) {
e.preventDefault();
$tr = $(this).closest("tr");
var url = $(this).attr("href");
$.post(url).done(function() {
$tr.find('td').fadeOut(700,function() {
$tr.remove();
});
});
});
});
Here是两个解决方案的工作方式,供您参考(排除了ajax调用)。
答案 2 :(得分:0)
使用id
<td id="td...">
替换
$tr.find('td').fadeOut(1000, function () {
$tr.remove();
});
按
$('#td...').fadeOut(1000, function () {
$('#td...').remove();
});