如何在javascript函数中将'this'作为参数传递?

如何在javascript函数中将'this'作为参数传递?,javascript,jquery,Javascript,Jquery,我正在我的项目中使用javascript 我在HTML表中添加了,我正在在此表中添加一些HTML,如下代码所示。 但当用户单击Delete锚定标记时,我想隐藏相应的 $("#idDocList").append("<tr><td>" + file.name + "</td><td>" + sz + "</td><td><a onclick=deleteDocument(this,'" + file.name + "')

我正在我的项目中使用javascript

我在
HTML表中添加了
,我正在
在此表中添加一些HTML,如下代码所示。
但当用户单击
Delete
锚定标记时,我想隐藏相应的

$("#idDocList").append("<tr><td>" + file.name + "</td><td>" + sz + "</td><td><a onclick=deleteDocument(this,'" + file.name + "')> Delete</a></td></tr>");

我不想使用
ID
作为
标记,因为我有很多文档。

作为一个快速解决方案,您可以这样使用

$(CurAnchorTag).closest('tr').hide();
替换为
tr

使用jquery可以这样删除内联函数调用

$("#idDocList").on("click", "td a", function() {
    $(this).closest("tr").hide();
    var filename = $(this).closest("td").prev().text();
});

我建议您将代码更改为:

var newRow = $("<tr><td>" + file.name + "</td><td>" + sz + "</td><td><a href='#'> Delete</a></td></tr>").appendTo("#idDocList");
newRow.find( 'a' ).click( function( e ) {
    e.preventDefault();
    $( this ).closest('<tr>').hide();
});
var newRow=$(“+file.name+”+sz+).appendTo(“#idDocList”);
查找('a')。单击(函数(e){
e、 预防默认值();
$(this).closest(“”).hide();
});
您可以使用

$(".delete_link").click(function(){$(this).closest('tr').hide();}

Jquery将使用this元素调用它。在html文件上不需要onclick。

您最好使用事件委派,同时去掉内联onclick处理程序:

$('#idDocList').on('click', '.btn-delete', function() {
    $(this).closest('tr').hide();
    // read filename: $(this).data('filename')
});
并将其与HTML(附加的sting)一起使用:

“”+file.name+“”+sz+“删除”
请注意以下部分:

<a class="btn-delete" data-filename="filename">Delete</a>
删除

您建议使用jquery为类使用事件

$("#idDocList").append("<tr><td>" + file.name + "</td><td>" + sz + "</td><td><a class='delete_link'> Delete</a></td></tr>");
如果你不想使用一个类,你可以使用这个

$("#idDocList td > a").click(function(){ $(this).closest("tr").hide() });

您可以将
事件
作为参数传递,而不是
。然后在click handler函数中使用
event.target
。另外,
onclick='deleteDocument(这个,\''“+file.name+”\')
。嗯,有人说我有强迫症。这里有一把小提琴——如果从
onclick
属性调用函数,它将不起作用
$("#idDocList").append("<tr><td>" + file.name + "</td><td>" + sz + "</td><td><a class='delete_link'> Delete</a></td></tr>");
$(".delete_link").click(function(){ $(this).closest("tr").hide() });
$("#idDocList td > a").click(function(){ $(this).closest("tr").hide() });