我正在用以下代码创建标签:
$('#td' + id).append('<p><a href="#" onclick="excluirArquivo(\'' + response + '\'); return false;"><img src="/erp/proposta/media/images/delete.png" alt="Excluir arquivo" /></a> ' + file + '</p>');
excluirArquivo功能
function excluirArquivo(arquivo) {
$.ajax({
type: 'POST',
url: '/erp/proposta/index.php/arquivo/remover/' + arquivo
});
alert($(this));
}
但是excluirArquivo函数中的这个元素正在返回Window对象。如何获取excluirArquivo中的单击元素(标记)?
答案 0 :(得分:9)
如果必须以这种方式分配事件处理程序(即“DOM 0”方式,而不是jQuery),则可以执行以下操作:
<a href='#' onclick='excluirArquivo(this)' > ... </a>
或者,我想(假设您要传递参数):
<a href='#' onclick='excluirArquivo.call(this, param)'> ... </a>
这样,函数内部的“this”将是元素,它看起来更接近你想要的东西。
答案 1 :(得分:1)
您需要拆分它,如下所示:
$("#td" + id).append("<p><a href=\"#\" /></p>");
然后选择新元素
$("#td > p > a").click(
function(){
//this now will be pointing to the selected element
}
)