简体   繁体   中英

How do I get the clicked element with inline HTML onclick and jQuery?

I'm creating a tags with this code:

$('#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

function excluirArquivo(arquivo) {
    $.ajax({
        type: 'POST',
        url: '/erp/proposta/index.php/arquivo/remover/' + arquivo
    });

    alert($(this));
}

But this element inside excluirArquivo function is returning the Window object. How do I get the clicked element (a tag) inside of excluirArquivo?

If you must assign your event handler that way (that is, the "DOM 0" way, instead of with jQuery), you can do this:

<a href='#' onclick='excluirArquivo(this)' > ... </a>

Or, I suppose (given that you want to pass a parameter):

<a href='#' onclick='excluirArquivo.call(this, param)'> ... </a>

That way, "this" inside the function will be the element, which seems closer to what you want.

You need to split it, like this:

$("#td" + id).append("<p><a  href=\"#\" /></p>");

and then select the new element

$("#td > p > a").click(
function(){
//this now will be pointing to the selected element
}
)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM