使用javascript / jquery删除表行
这不起作用。 Firebug并没有抛出任何错误。
HTML:
BookA Delete BookB Delete BookC Delete BookD Delete
使用Javascript:
function deleteRow(ref) { $(ref).parent().parent().remove(); }
如果可能,我想使用内联JavaScript的解决方案
首先,内联JavaScript( href="javascript:x"
或onclick="x"
)通常很糟糕。 使用内联JavaScript,您将无法访问事件对象,并且您无法确定this
引用的是什么。
jQuery(以及几乎所有其他JavaScript库/框架)都内置了事件处理。 因此,使用事件处理程序,您的代码看起来像这样:
$('a.red').click(function(e) { e.preventDefault(); // don't follow the link $(this).closest('tr').remove(); // credits goes to MrKurt for use of closest() });
这是一个演示: http : //jsbin.com/okaxu
试试这个:
// Bind all the td element a click event $('table td.deleteRow').click(function(){ $(this).parent().remove(); });
顺便说一句,它将从你的HTML代码中删除javascript。 有了这个HTML代码
BookA Delete BookB Delete BookC Delete BookD Delete
删除内联脚本
这不起作用,因为$(this)并不像你想的那样引用a-tag(我认为它指的是window对象或其他东西)
而不是在href属性中使用内联javascript执行此操作
而是这样做
我相信你的deleteRow函数有一个错误。 这是它应该如何写:
function deleteRow(ref) { ref.parent().parent().remove(); }
您传递给deleteRow的引用已经是一个jQuery对象。 你不应该使用$(ref),只是ref,因为ref已经是一个jQuery对象。